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