Un modo semplice per implementare l'incremento automatico sarebbe utilizzare un Variabile di proprietà AppleScript :
property responseNumber : 42
I valori delle proprietà sono "ricordati" tra le chiamate al tuo script. Quindi, nel tuo gestore usa semplicemente:
set responseNumber to responseNumber + 1
Tuttavia, il valore della proprietà viene ripristinato ogni volta che viene compilato AppleScript. Dovresti quindi modificare manualmente il 1
in property responseNumber : 1
con l'ultimo valore quando hai cambiato lo script. L'utilizzo di un file è quindi un metodo più affidabile e l'utilizzo di un file di preferenze per registrare il valore della proprietà corrente significa che è possibile utilizzare la funzionalità integrata.
Un esempio di base di AppleScript (senza controlli di errore o test, dal momento che non uso Mail ), per darti un'idea:
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 "Thank you for your email." & return & "Your number is #" & (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()
-- Get the path to the property list
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()
-- Get the path to the property list
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
Salva questo script nella tua cartella ~/Library/Application Scripts/com.apple.mail
e configura una regola Mail per chiamarla.
Dovrai anche creare il file plist appropriato nella tua cartella ~/Library/Preferences
con i seguenti contenuti:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ResponseNumber</key>
<integer>42</integer>
</dict>
</plist>