AppleScript/Automatizar tareas de correo

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

Situación:El Gerente de Proyecto en el trabajo se ha encargado 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 se ha logrado) y lo que han programado para la próxima semana (todo este esfuerzo ocurre todos los días). Martes). Así que les pidió a todos que usen un formato muy simple (sin saludo, sin salutación, nada más que el contenido real que tienen que informar). Una vez que cada uno de estos correos electrónicos llega el lunes por la noche/martes por la mañana, él copia manualmente el texto de cada uno de ellos y luego lo pega en otro correo electrónico uno a la vez, componiendo 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 completo, lo envía a su supervisor. (Para que conste, entiendo completamente que hay innumerables maneras mejores de hacer esto y que es risible...

Objetivo: ya configuré reglas para que los correos electrónicos específicos se muevan a un cuadro designado (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 crear y enviar el nuevo mensaje único al jefe... y ahí es donde las cosas se han estancado.

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

Entonces, la pregunta es: ¿es posible, y si es 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 nuevo correo electrónico, y enviarlo y enviarlo en consecuencia? El objetivo es que este tipo se siente frente a su computadora los martes por la mañana, seleccione los correos electrónicos en cuestión (a menos que haya una forma de generar un script para que los mensajes correctos se seleccionen automáticamente) y luego ejecute el script/servicio/aplicación (a través de un atajo de teclado o un puerto). icon, los cuales puedo manejar) y terminar con eso?

Respuestas (2)

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 los correos electrónicos seleccionados y prepara un correo electrónico saliente listo para enviar. Puede incrustar este AppleScript dentro de un flujo de trabajo de Automator o guardarlo como una aplicación para hacer doble clic.

Obtener el 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

Envío de correo electrónico con AppleScript

Desde Enviar correo electrónico usando Applescript :

set recipientName to "WhiteHat"
set recipientAddress to "someemail@here.com"
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 "boss@example.com"
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
tell application "Mail"

  set theSubject to "Subject" -- the subject
  set theContent to "Content" -- the content
  set theAddress to "xxx@163.com" -- 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