2 votes

AppleScript répondeur automatique avec numéro incrémentiel

Je suis en train de créer un répondeur automatique qui répondra à tout email d'une certaine adresse avec quelque chose comme :

Merci pour votre email.
Votre numéro est #0000042.

Le numéro devrait s'incrémenter chaque fois qu'il envoie un de ces emails.

Après avoir regardé en ligne les solutions coûteuses, il semble que ma meilleure option soit d'automatiser quelque chose avec AppleScript - en sauvegardant éventuellement le dernier numéro dans un fichier et en l'incrémentant.

À quoi ressemblerait un tel script?

1voto

user54284 Points 9

Une façon simple de mettre en œuvre l'incrémentation automatique serait d'utiliser une variable de propriété AppleScript:

property responseNumber : 42

Les valeurs de propriété sont "mémorisées" entre les appels à votre script. Ainsi, dans votre gestionnaire, utilisez simplement :

set responseNumber to responseNumber + 1

Cependant, la valeur de propriété est réinitialisée chaque fois que l'AppleScript est compilé. Vous auriez donc besoin de changer manuellement le 1 dans property responseNumber : 1 en la dernière valeur lorsque vous modifiez le script. L'utilisation d'un fichier est donc une méthode plus robuste et l'utilisation d'un fichier de préférences pour enregistrer la valeur de propriété actuelle signifie que vous pouvez utiliser une fonctionnalité intégrée.

Un exemple de base d'AppleScript (sans vérifications d'erreurs ni tests, car je n'utilise pas Mail), pour vous donner une idée :

property responseNumber : 42
property prefFileName : "your.domain.in.reverse.emailresponder.plist" 

on perform_mail_action(theData) 
    my readPrefs() 
    tell application "Mail" 
        set theSelectedMessages to |SelectedMessages| of theData 
        repeat with theMessage in theSelectedMessages 
            set theReply to reply theMessage 
            set the content of theReply to "Merci pour votre e-mail." & return & "Votre numéro est #" & (zeroPad of me given value:responseNumber, minimumDigits:7) & "." & return 
            send theReply 
            set responseNumber to responseNumber + 1 
        end repeat 
    end tell 
    my writePrefs() 
end perform_mail_action 

on zeroPad given value:n, minimumDigits:m : 2 
    set val to "" & (n as integer) 
    repeat while length of val < m 
        set val to "0" & val 
    end repeat 
    return val 
end zeroPad 

on readPrefs() 
    -- Obtenez le chemin vers la liste de propriétés 
    set plPath to (path to preferences folder as text) & prefFileName 
    tell application "System Events" 
        set plContents to contents of property list file plPath
        set responseNumber to value of property list item "ResponseNumber" of plContents
    end tell
end readPrefs

on writePrefs()
    -- Obtenez le chemin vers la liste de propriétés
    set plPath to (path to preferences folder as text) & prefFileName
    tell application "System Events"
        set the value of property list item "ResponseNumber" of contents of property list file plPath to responseNumber
    end tell
end writePrefs

Enregistrez ce script dans votre dossier ~/Library/Application Scripts/com.apple.mail et configurez une règle Mail pour l'appeler.

Vous devrez également créer le fichier plist approprié dans votre dossier ~/Library/Preferences avec le contenu suivant :

    ResponseNumber
    42

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