2 votes

Modifier les règles de messagerie manuellement

Je veux éditer manuellement le fichier .plist suivant:

/Utilisateurs//Bibliothèque/Mail/V5/MailData/SyncedRules.plist

Parce que je reçois beaucoup de spam et ajouter chaque adresse de spammeur aux règles en utilisant Mail est impensable:

entrer la description de l'image ici

et il y a beaucoup d'adresses à ajouter. Comme je connais un peu le script bash, sed et awk, je pense écrire un script qui ajoute automatiquement les adresses à partir de l'e-mail sélectionné dans le fichier plist ci-dessus.

entrer la description de l'image ici


Alors, quelle est ma question?

En conclusion, pour chaque adresse de spammeur, le script devrait ajouter une nouvelle entrée dict avec les champs suivants:

            CriterionUniqueId
            CC4CB669-0D44-4A32-80B1-02D069718304 (*)
            Expression
            spammer@address.spam
            Header
            From

Comment la chaîne à (*) est-elle générée? Comment puis-je la remplir?

3voto

wch1zpink Points 6067

Peut-être apprécierez-vous ce script. Fondamentalement, le code récupérera toutes les adresses e-mail des expéditeurs de tous les e-mails situés dans votre boîte de courrier indésirable et créera une nouvelle règle de messagerie pour chacun... Définissant le nom de la règle comme l'adresse e-mail extraite. En cas d'éléments en double dans la liste des expéditeurs, tous les doublons seront supprimés avant d'ajouter les règles. De plus, une boîte de dialogue apparaîtra pour vous offrir la possibilité d'activer les nouvelles règles créées. Ce code devrait s'avérer être un énorme gain de temps.

Cela fonctionne pour moi en utilisant la dernière version de macOS High Sierra

définir en cours d'exécution sur l'application "Mail" est en cours d'exécution

dire à l'application "Mail"
    activer
    si en cours d'exécution est faux alors
        retard de 12
    sinon
        retard de 2
    fin si
    définir junkEmailAddressesNoDupes pour {}
    définir junkEmailAddresses pour l'expéditeur de chaque message de la boîte aux lettres indésirable
    si (le nombre de junkEmailAddresses) est 0 alors
        définir zeroJunkMail pour le bouton renvoyé de (afficher le dialogue "Vous avez actuellement 0 messages indésirables" boutons {"OK"} avec icône 1 bouton par défaut "OK" abandonner après 10)
        si zeroJunkMail est "OK" alors
            si en cours d'exécution est faux alors
                dire à l'application "Mail" de quitter
            fin si
            retour
        fin si
        si en cours d'exécution est faux alors
            dire à l'application "Mail" de quitter
        fin si
        retour
    fin si
    activer
    afficher alerte ¬
        "IMPORTANT" message "Veuillez vous assurer que le dossier de courrier indésirable de niveau supérieur étiqueté" & " " & guillemet & "INDÉSIRABLE" & guillemet & ¬
        " est sélectionné" en guise d'avertissement ¬
        boutons {"Annuler", "OK"} ¬
        bouton par défaut 2 ¬
        bouton d'annulation 1 ¬
        abandonner après 30
    retard de 10
    répéter avec i de 1 à le nombre de junkEmailAddresses
        définir cet élément comme élément i de junkEmailAddresses
        définir cet e-mail comme adresse d'extraction de cet élément
        ajouter thisEmail à junkEmailAddressesNoDupes
    fin répéter
end dire

définir junkEmailAddressesNoDupes2 comme retirerDuplica...

tell application "Mail"
    activer
    set checkRulez pour le bouton renvoyé de (afficher le dialogue ¬
        "Veuillez vous assurer que ces nouvelles règles de courrier indésirable ne contiennent pas d'adresses e-mail valides que vous ne souhaitez pas marquer comme indésirables" & linefeed & linefeed & (junkEmailAddressesNoDupes2 comme liste) boutons {"ANNULER", "OK"} ¬
        bouton par défaut 2 ¬
        bouton d'annulation 1 ¬
        avec titre ¬
        "NOUVELLES RÈGLES DE COURRIER INDÉSIRABLE" avec icône 1 ¬
        abandonner après 120)
end dire

si checkRulez est "ANNULER" alors
    retour
fin si

répéter avec i de 1 à le nombre de junkEmailAddressesNoDupes2
    définir cet élément comme élément i de junkEmailAddressesNoDupes2
    dire à l'application "Mail"
        si non (existe de la règle thisItem) alors
            créer une nouvelle règle ¬
                avec propriétés {nom:thisItem}
            dire à sa règle thisItem
                créer une nouvelle condition de règle ¬
                    avec propriétés {entête:"", expression:thisItem, type de règle:de l'entête, qualificateur:égal à la valeur}
                retard de 0.1
                définir sup. message comme vrai
            end tell
        end if
    end tell
end répéter

dire à l'application "Mail"
    activer
    set enableRulez pour le bouton renvoyé de (afficher le dialogue ¬
        "Activer les nouvelles règles ?" boutons {"Annuler", "Non", "Oui"} ¬
        bouton par défaut 3 ¬
        bouton d'annulation 1 ¬
        avec titre ¬
        "Nouvelles règles" abandonner après 30)
end dire

si enableRulez est "Oui" alors
    dire à l'application "Mail" de définir activé de chaque règle comme vrai
sinon
    retour
fin si

dire à l'application "Mail"
    activer
    set applyRulez pour le bouton renvoyé de (afficher le dialogue ¬
        "Souhaitez-vous appliquer vos nouvelles règles de courrier indésirable à votre courrier indésirable actuel ?" boutons {"Non", "Oui"} ¬
        bouton par défaut 2 ¬
        bouton d'annulation 1 ¬
        avec titre ¬
        "APPLIQUER LES NOUVELLES RÈGLES ?" avec icône 1 ¬
        abandonner après 30)
end dire

si applyRulez est "Oui" alors
    dire à l'application "System Events"
        dire à l'application "Mail" d'activer
        cliquer sur le texte statique 1 de l'élément UI 1 de la ligne 5 de l'arborescence 1 de la zone de défilement 1 ¬
            du groupe de séparateurs 1 de la fenêtre 1 du processus d'application "Mail"
        retard de 1
        appuyer sur "a" utilisant la touche commande enfoncée
        retard de 0.5
        appuyer sur "l" utilisant {option enfoncée, touche commande enfoncée}
    end tell
sinon
    retour
fin si

sur retirerDuplica....

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X