对方名称
”,以节省时间和精力。如果您没有类似需求,也可以看看作者在 Keyboard Maestro 和 Shortcuts 之间传递变量的思路。
工作原因,我每天都要处理大量的邮件。对于每一封需要回复的邮件,我习惯打上“Dear, XXX”或“Hi, XXX”。当邮件数量不多时,手动输入不是什么大问题。但是,当每天要回复十几到几十封邮件时,这个过程就显得既重复又费力了。
原本,我尝试使用 AppleScript 来自动抓取邮件中的显示名称——比如从"liky(kar530.io@gmail.com)"中提取出“liky”。不幸的是,这种方法遇到了一个挑战:如果收到的邮件显示的是一个电子邮件地址而不是一个名字,那么自动添加的称谓就会显得很怪异,比如“亲爱的kar530.io@gmail.com”。
我随后转向了一个更靠谱的解决方案:使用通讯录。我的通讯录里的联系人都按照一定的规则进行了命名,例如“公司名+姓名”。这样,只要通过 AppleScript 提取发件人的邮件地址,并在我的通讯录中进行查找,我就能够准确地找到对方的称谓。
在 ChatGPT 的帮助下我写了个 AppleScript 脚本来实现这一自动化。这个脚本首先从我选择的邮件中提取发件人的邮件地址,然后自动回复邮件,并将这个地址作为一个变量传递给Keyboard Maestro。
tell application "Mail"
set selectedMessages to selection
if (count of selectedMessages) is equal to 0 then
display alert "请先选择一封邮件。"
return
end if
set theMessage to item 1 of selectedMessages
set theSender to sender of theMessage
set emailAddress to extract address from theSender
set replyMessage to reply theMessage with reply to all
activate application "Mail"
end tell
tell application "Keyboard Maestro Engine"
set variable "MyVariable" to emailAddress
end tell
最后一段是把AppleScript的结果传递到Keyboard Maestro,我记得之前untag文章,《利用 macOS 邮件规则自动转发验证码》里面有提到这个信息。
结果提取到了之后,我制作了Shortcuts来提取名,这个就很简单了。如下图:
接下来就是把AppleScript的地址变量myVariable放在快捷指令的输入部分。那么执行快捷指令就可以使用收件人的地址了。执行完毕后,最后在加几步,让邮件的输入空格在Dear XXX的下面,这样你回复邮件可以直接打字,不要在调整位置了。如图:
备注 1:如果是客户是新客户,通讯录里没有对应人物和邮箱地址,那么自然无法提取。所以这个技巧和思路要求我们把客户追加到苹果的通讯录里。 备注 2:我的快捷指令里面有一个正则表达式,那时我的通讯录是公司名+名,我只需要提取最后一个单词,如果你们命名和我不一样,或者直接就是命名的对方的姓名,直接提取就可以。