AppleScript / Automate Mail Tasks

7

He estado tratando de ayudar a un compañero de trabajo a automatizar una compilación de correo electrónico semanal que él envía, pero aún no he podido averiguar cómo abordar algunas áreas específicas ... primero explicaré la situación, luego el objetivo .

Situación: El Project Manager en el trabajo ha recibido la tarea de recopilar información de varios empleados específicos (gerentes) cada semana con respecto a lo que sus respectivos equipos han estado trabajando (y qué progreso ha logrado) y han programado para la próxima semana (todo este esfuerzo ocurre cada Martes). Así que les pidió a todos que usen un formato muy simple (sin saludo, sin saludo, nada más que el contenido real que deben informar). Una vez que llega cada uno de estos correos electrónicos el lunes por la noche / martes por la mañana, luego copia manualmente el texto de cada uno de ellos y luego lo pega en otro correo electrónico de uno en uno, creando así un correo electrónico con todo el contenido de cada uno de los demás. Una vez que tiene este nuevo correo electrónico con todo incluido, lo envía a su supervisor. (Para que conste, entiendo perfectamente que hay innumerables formas mejores de hacer esto y que es ridículo ... pero esa no es mi batalla y es así como se le indicó que lo hiciera, así que estoy tratando de hacerlo más fácil. él.)

Objetivo: Ya he establecido reglas para que los correos electrónicos específicos se muevan a una casilla designada (pensando que eso facilitaría la identificación de los mensajes correctos para el script / automatización), y mi siguiente paso fue automatizar la ... recopilación de estos mensajes y creando y enviando el nuevo mensaje único al jefe ... y ahí es donde las cosas se han estancado.

He encontrado scripts para copiar, scripts para pegar y (en una versión anterior de OS x, 10.6 quizás) incluso encontré una acción en Automator que compilaba el texto de los mensajes seleccionados (en Mail) en un nuevo mensaje. ..pero, lamentablemente, simplemente no se ejecutará en versiones más modernas del sistema operativo (específicamente 10.8 y 10.9).

Así que las preguntas son: ¿Es posible, y de ser así, cómo, automatizar la copia del cuerpo del mensaje de un grupo específico de correos electrónicos y pegar todo el texto en un correo electrónico nuevo, y enviarlo como corresponde? El objetivo es que este tipo se siente en su computadora los martes por la mañana, seleccione los correos electrónicos en cuestión (a menos que haya una forma de escribirlo para que los mensajes correctos se seleccionen automáticamente) luego ejecute el script / servicio / aplicación (mediante un atajo de teclado o un dock ícono, ambos de los cuales puedo manejar) y estar terminado con él?

    
pregunta TheWARDen 28.03.2014 - 14:30

2 respuestas

10

Esto es ciertamente posible con AppleScript. Aquí hay algunos recursos y fragmentos para ayudarlo a crear su guión ideal.

El AppleScript final combina el contenido de cualquier correo electrónico seleccionado y prepara un correo electrónico saliente listo para enviar. Puede incrustar este AppleScript en un flujo de trabajo de Automator, o guardarlo como una aplicación para hacer doble clic.

Obtención del contenido de los mensajes seleccionados

De Automatización de Spamcop :

set raw to {}
tell application "Mail"
    set msgs to selection
    if length of msgs is not 0 then
        repeat with msg in msgs
            set messageSource to source of msg
            set raw to raw & messageSource
            set background color of msg to gray     
        end repeat
    end if
end tell

Enviando correo electrónico con AppleScript

De Enviar correo electrónico utilizando Applescript :

set recipientName to "WhiteHat"
set recipientAddress to "[email protected]"
set theSubject to "Type your subject here!"
set theContent to "Type your message content here!"

tell application "Mail"

        ##Create the message
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

        ##Set a recipient
        tell theMessage
                make new to recipient with properties {name:recipientName, address:recipientAddress}

                ##Send the Message
                send

        end tell
end tell

Combinar, crear y enviar

La combinación de los dos fragmentos anteriores da el siguiente AppleScript:

set recipientName to "The Boss"
set recipientAddress to "[email protected]"
set theSubject to "Type your subject here!"

set theCombinedContent to ""
tell application "Mail"
    set msgs to selection
    if length of msgs is not 0 then
        repeat with msg in msgs
            set theCombinedContent to theCombinedContent & (content of msg)
            -- set background color of msg to gray
        end repeat

        set theMessage to make new outgoing message with properties {subject:theSubject, content:theCombinedContent, visible:true}

        tell theMessage
            make new to recipient with properties {name:recipientName, address:recipientAddress}

            -- Uncomment line below to automatically send
            -- send

        end tell

    end if

end tell
    
respondido por el Graham Miln 28.03.2014 - 15:38
2
tell application "Mail"

  set theSubject to "Subject" -- the subject
  set theContent to "Content" -- the content
  set theAddress to "[email protected]" -- the receiver 
  set theSignatureName to "signature_name"-- the signature name
  set theAttachmentFile to "Macintosh HD:Users:moligaloo:Downloads:attachment.pdf" -- the attachment path

  set msg to make new outgoing message with properties {subject: theSubject, content: theContent, visible:true}

  tell msg to make new to recipient at end of every to recipient with properties {address:theAddress}
  tell msg to make new attachment with properties {file name:theAttachmentFile as alias}

  set message signature of msg to signature theSignatureName

  send msg
end tell
    
respondido por el jericho 16.02.2015 - 19:53

Lea otras preguntas en las etiquetas