Как настроить отправителя текущего исходящего сообщения Mail.app через AppleScript? - PullRequest
6 голосов
/ 10 июля 2011

Я хотел бы написать AppleScript, чтобы установить отправителя текущего исходящего сообщения в Apple Mail.app.

Я пробовал это:

tell application "Mail" to set sender of front outgoing message to "<my email address>"

но я получаюсообщение об ошибке error "Mail got an error: Can’t set sender of item to any." number -10006 from sender of item to any, которое не имеет смысла для меня.

Когда я пытаюсь запросить исходящее исходное сообщение следующим образом:

tell application "Mail" to get properties of front outgoing message

Я получаю {class:item} взамен,вместо объекта «исходящее сообщение», как я ожидал.

Есть идеи?

Ответы [ 7 ]

5 голосов
/ 07 октября 2011

К сожалению, вы не можете получить или установить свойства outgoing message объекта Mail с Applescript.

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

Этот код должен работать для вас:

tell application "System Events"
  tell process "Mail"
    click pop up button 1 of window 1
    click menu item 6 of menu 1 of pop up button 1 of window 1
  end tell
end tell

Измените menu item 6 в четвертой строке на любой номер в списке, в котором указан желаемый отправитель (например, если отправитель, которого вы хотите изменить с помощью этого сценария, является четвертым в списке, измените menu item 6 на menu item 4 ).


Обновление: Если вам интересно, так как этому ответу уже более двух лет: по состоянию на 2014-04-26 получение / установка свойств outgoing message s по-прежнему невозможно, и этот обходной путь все еще работает в OS X 10.9 Mavericks.

3 голосов
/ 19 июля 2013

Более чем неприятно, что вы не можете установить отправителя исходящего сообщения.

Вот более общая версия сценария Мэтью, который я написал много лет назад и часто использовал.Аргумент представляет собой строку, которая содержит именно то, что вы видите во всплывающем окне «От:», например,

"Mitchell L Model <dev@software-concepts.org>"

(Очень сложно получить подробности о чем-то подобном, если вы этого не сделаетемного сценариев в графическом интерфейсе.)

to setFrom(address)
    tell application "System Events"
        activate application "Mail"
        tell pop up button "From:" of window 1 of application process "Mail"
            click
            tell menu item address of menu 1 to click
        end tell
    end tell
end setFrom

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

property util : load script alias (((path to home folder) as text) & "Scripts:Utilities.scpt")

util's 's setFrom("Mitchell L Model <dev@software-concepts.org>")
2 голосов
/ 13 декабря 2014

На самом деле вы можете установить отправителя исходящего сообщения, как описано здесь: Неправильный отправитель при отправке электронной почты через Applescript

2 голосов
/ 05 июня 2014

Я думаю, что это немного сложнее.Мои собственные эксперименты согласны с выводом Алана Кимельмана в этой теме о том, что AppleScript работает, как и ожидалось, для исходящих сообщений, созданных с нуля сценарием .Например, работает следующий код:

tell application "Mail"
set newMessage to (a reference to (make new outgoing message))
tell newMessage
    make new to recipient at beginning of to recipients ¬
        with properties {address:"hello@world.com", name:"The World"}
    set the sender to "Jerry Krinock <jerry@sheepsystems.com>"
    set the subject to "A Test"
    set the content to "This is only a test."
    send
end tell
end tell

Однако, если сообщение создается другими способами (например, я создаю HTML-сообщения, говоря Safari об обмене по электронной почте), то Мэтью МакВикар прав, чтоAppleScript сломан.Вы не можете устанавливать или получать какие-либо свойства, а также отклоняет команду send .

1 голос
/ 23 марта 2015

Тривиально использовать AppleScript для создания нового исходящего сообщения с любым исходящим адресом, который вам нравится (ну, по крайней мере, настроенный в настройках Mail.app).

Обсуждения здесь связаны с попытками (неправильно) изменить его после создания сообщения. Вместо этого укажите его при создании сообщения:

set new_m to make new outgoing message with properties {sender:"My Name <me@my.com>"}

Текст в кавычках должен соответствовать как реальному имени, так и адресу электронной почты (в шевронах) любой настроенной учетной записи. Если совпадений нет, Mail.app будет использовать адрес по умолчанию

0 голосов
/ 07 октября 2011

Альтернативой приведенному мною примеру сценария с графическим интерфейсом будет сценарий Automator, использующий команду «Watch Me Do».Я не совсем понимаю, как это работает под капотом, но якобы записывает движение мыши и взаимодействие с графическим интерфейсом, а затем воспроизводит то, что вы записали, когда он работает.К сожалению, я испытал значительное отставание при запуске скрипта.После того, как он попросил его запустить, он иногда запускался через 5 или более секунд, что явно невозможно.

Метод сценариев GUI почти мгновенный и выглядит более чисто (без движения мыши) для загрузки.Я рекомендую это.

0 голосов
/ 29 июля 2011

Попробуйте вместо этого.

tell application "Mail" to make new outgoing message with properties {sender:"<your_email_address>", visible:true}

ОБНОВЛЕНИЕ: Я бы посмотрел в словаре сценариев Mail и увидел, что вы можете и не можете сделать.Предоставленная там информация может помочь.:)

...