自动为Apple Mail中的每个收件人设置默认的“发件人:”帐户

时间:2015-04-15 06:34:28

标签: email applescript apple-mail

问题

我在OS X 10.10上使用Apple Mail并配置了两个邮件帐户 - 一个用于工作,一个用于个人。当我编写新消息(不是回复)时,我不止一次地忘记检查“发件人:”地址并从我的个人帐户发送工作消息,反之亦然。

请求

我正在寻找一种自动设置“发件人:”帐户的方法,该帐户基于收件人在撰写新邮件时的身份。如果电子邮件是回复,我想要默认的Apple Mail行为(从收到邮件的帐户回复)。

例如,假设我想向我的同事约翰发送消息。所以我撰写了一条新消息并将其发送到他的工作电子邮件中。我希望Apple Mail自动检测他的电子邮件地址,并将“发件人:”帐户设置为我的工作电子邮件地址。

当然,必须创建这些电子邮件地址的列表,但在初始配置之后,行为应该会自动生效。

另一个例子:说同一个同事约翰和我也是朋友,他给我发了一封电子邮件到我的个人账户,以便在工作之外安排聚会。当我回复他的电子邮件时,我希望“发件人:”帐户成为我的个人帐户,因为这是该电子邮件最初发送到的帐户。

我不明白这种看似常识的方法在2015年对于电子邮件客户端来说不是标准问题!当然,我不可能是唯一一个想要Apple Mail以及其他所有邮件客户端提供的通用默认“From:”帐户的人。

我查看了Apple Mail的AppleScript字典并阅读了一些提示GUI脚本可能提供此功能的线程,但我对此没有任何经验。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

诀窍是让Applescript监控正在创建的新消息。如果您愿意使用Keyboard Maestro路线,则可以将command-N重新映射到获取收件人地址的Applescript,然后使用相应的发件人创建一条消息(有关相关信息,请参阅http://www.macstories.net/tutorials/automating-mail-signatures-and-senders-with-applescript-and-keyboard-maestro/http://shawnblanc.net/2013/04/keyboard-maestro-email-signatures/例子)。

或者在输入地址后运行脚本。 GUI脚本不是必需的。它看起来像这样:

tell application "Mail"
set m to front outgoing message
set theRecipients to to recipients of m
  repeat with r in theRecipients
    if address of r is in {"mybuddy@fastmail.fm", "my buddy@gmail.com"} then
        set sender of m to "Personal Me <personalme@gmail.com>"
    end if
  end repeat
end tell

自动将Applescript执行此操作而不进行干预需要守护程序或其他一些监视Mail中事件的方法。不幸的是,没有内置的钩子。