AppleScript / Автоматизация почтовых задач

10

Я пытался помочь коллеге автоматизировать еженедельную компиляцию электронной почты, которую он рассылает, но пока не смог выяснить, как обращаться к нескольким конкретным областям ... сначала я объясню ситуацию, затем цель.

Ситуация: Руководителю проекта на работе было поручено собирать информацию от нескольких конкретных сотрудников (менеджеров) каждую неделю относительно того, над чем работали их соответствующие команды (и какой прогресс был достигнут), и планировали на предстоящую неделю (вся эта работа происходит каждый раз Вторник). Поэтому он попросил их всех использовать очень простой формат (без приветствия, без приветствия, ничего, кроме фактического содержания, о котором они должны сообщить). Как только каждое из этих писем приходит вечером в понедельник вечером / утром во вторник, он затем вручную копирует текст из каждого из них, а затем вставляет его в другое письмо по одному, таким образом составляя одно электронное письмо со всем содержимым из каждого из остальных. Получив новое электронное письмо, он отправляет его своему руководителю. (Для протокола, я полностью понимаю, что есть бесчисленное множество лучших способов сделать это и что это смешно ...

Цель: я уже установил правила, чтобы конкретные электронные письма перемещались в назначенный ящик (полагая, что это облегчит идентификацию правильных сообщений для сценария / автоматизации), и моим следующим шагом была автоматизация ... сопоставления этих сообщения и создание и отправка нового единственного сообщения боссу ... и вот где все застопорилось.

Я нашел сценарии для копирования, сценарии для вставки и (на более старой версии OS X, возможно, 10.6) даже обнаружил действие в Automator, которое скомпилировало текст из выбранных сообщений (в Mail) в одно новое сообщение ... но к сожалению, он просто не будет работать на более современных версиях ОС (в частности, 10.8 и 10.9).

Таким образом, возникает вопрос: возможно ли, и если да, то каким образом автоматизировать копирование тела сообщения определенной группы электронных писем и вставку всего текста в одно новое электронное письмо, чтобы оно было соответствующим образом адресовано и отправлено? Цель состоит в том, чтобы этот парень сидел за своим компьютером по утрам во вторник, выбирал соответствующие электронные письма (если не существует способа написать это так, чтобы правильные сообщения выбирались автоматически), а затем запустить скрипт / службу / приложение (с помощью сочетания клавиш или дока). значок, оба из которых я могу справиться) и быть сделано с этим?

TheWARDen
источник

Ответы:

11

Это, безусловно, возможно с AppleScript. Вот некоторые ресурсы и фрагменты, которые помогут вам создать свой идеальный сценарий.

Финальный AppleScript объединяет содержимое любых выбранных электронных писем и подготавливает исходящие электронные письма, готовые к отправке. Вы можете встроить этот AppleScript в рабочий процесс Automator или сохранить его как приложение для двойного щелчка.

Получение содержимого выбранных сообщений

Из автоматизации 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

Отправка электронной почты с AppleScript

От отправки электронной почты с помощью 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

Объединить, создать и отправить

Объединение двух приведенных выше фрагментов дает следующий 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
Грэм Милн
источник
3
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
Иерихон
источник