Respuesta automática de AppleScript con número incremental

Estoy tratando de crear una respuesta automática que responderá a cualquier correo electrónico de una determinada dirección con algo como:

Gracias por su correo electrónico.
Su número es #0000042.

El número debería incrementarse cada vez que envía uno de estos correos electrónicos.

Después de buscar en línea las costosas soluciones, parece que mi mejor apuesta es automatizar algo con AppleScript, posiblemente guardando el último número en un archivo e incrementándolo.

¿Cómo sería un guión así?

¿Qué tienes hasta ahora? ¿Está buscando un script completo o simplemente está incrementando "Su número es #0000042". parte del guion?
@ user3439894 Un script completo, o al menos lo básico.
He ampliado mi respuesta con un guión completo.

Respuestas (1)

Una forma sencilla de implementar el incremento automático sería utilizar una variable de propiedad de AppleScript :

property responseNumber : 42

Los valores de propiedad se "recuerdan" entre las llamadas a su secuencia de comandos. Entonces, 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, deberá cambiar manualmente la 1entrada property responseNumber : 1al último valor cuando cambió el script. Por lo tanto, usar un archivo es un método más sólido y usar un archivo de preferencias para registrar el valor de propiedad actual significa que puede usar la funcionalidad integrada.

Un ejemplo básico de AppleScript (sin verificación de errores ni pruebas, ya que no uso Mail ), 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 ~/Library/Application Scripts/com.apple.mailcarpeta y configure una regla de correo para llamarlo.

También deberá crear el archivo plist apropiado en su ~/Library/Preferencescarpeta con los siguientes contenidos:

<?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>