Una forma sencilla de implementar el incremento automático sería usar un Variable de propiedad AppleScript :
property responseNumber : 42
Los valores de propiedad se "recuerdan" entre las llamadas a su script. Por lo tanto, en su controlador simplemente use:
set responseNumber to responseNumber + 1
Sin embargo, el valor de la propiedad se restablece cada vez que se compila el AppleScript. Por lo tanto, tendría que cambiar manualmente el 1
en property responseNumber : 1
al último valor cuando cambió la secuencia de comandos. Por lo tanto, usar un archivo es un método más robusto y usar un archivo de preferencias para registrar el valor de la propiedad actual significa que puede usar la funcionalidad incorporada.
Un ejemplo básico de AppleScript (sin verificaciones de errores ni pruebas, ya que no uso Correo ), para darle una 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
Guarde este script en su carpeta ~/Library/Application Scripts/com.apple.mail
y configure una regla de Correo para llamarlo.
También deberá crear el archivo plist apropiado en su carpeta ~/Library/Preferences
con el siguiente contenido:
<?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>