2 votos

Contestador automático de AppleScript con incrementar el número de

Estoy tratando de crear una auto-respuesta que va a responder a cualquier correo electrónico desde una dirección determinada con algo como:

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

El número debe incrementar cada vez que se envía uno de estos mensajes de correo electrónico.

Después de buscar en línea en la cara soluciones se parece a mi mejor apuesta es la automatización de algo con AppleScript - posiblemente salvar el último número en un archivo y el incremento de la misma.

¿Qué sería de una secuencia de comandos?

1voto

MikeLimaOscar Puntos 196

Una forma simple de implementar el auto incremento sería el uso de un AppleScript variable de propiedad:

property responseNumber : 42

Los valores de propiedad son "recordado" entre las llamadas a la secuencia de comandos. Así, en el controlador simplemente utilizar:

set responseNumber to responseNumber + 1

Sin embargo, el valor de la propiedad se restablece cada vez que el AppleScript es compilado. Por lo que tendría que cambiar manualmente la 1 en property responseNumber : 1 para el valor más reciente cuando se cambia la secuencia de comandos. El uso de un archivo es, por tanto, un método más robusto y el uso de un archivo de preferencias para registrar el valor actual de la propiedad significa que usted puede utilizar el construido en la funcionalidad.

Un básico ejemplo de AppleScript (sin comprobaciones de errores, ni las pruebas, ya que yo no uso el Correo), para dar 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

Guardar este script en su ~/Library/Application Scripts/com.apple.mail carpeta y configurar un Correo regla para llamar.

Usted también necesitará crear el correspondiente archivo plist en su ~/Library/Preferences carpeta 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>

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X