Mac邮件需通过规则+AppleScript实现按收件人自动切换签名:先在偏好设置中为账户分配多个唯一命名签名,再创建匹配域名的规则并绑定对应签名脚本,最后启用规则并验证生效。

Mac邮件需要为不同收件人自动匹配专属签名档,比如给客户发邮件用带公司LOGO和联系方式的正式签名,给同事发内部邮件则用简洁无联系方式的轻量版,但系统原生不支持按收件人智能切换签名——必须借助规则与脚本组合实现。
确认基础签名已就绪
先确保你要分配的多个签名已在“邮件”偏好设置中创建并分别绑定到对应账户。例如:名为“客户-正式”的签名已分配给工作邮箱,“同事-内部”签名也已分配成功。如果签名只建在“所有签名”下却没拖进账户,后续规则将无法调用它。
打开“邮件”→“偏好设置”→“签名”,左侧选中你的工作邮箱,中间栏应能看到两个已勾选默认项的签名条目。若只有一个或名称混乱,现在立刻重命名并补全分配——【签名名称必须唯一且不含空格或特殊符号,否则AppleScript识别会失败】。
用规则触发签名切换(核心步骤)
Mac邮件本身不提供“按收件人换签名”选项,但可利用“规则”功能在发信前执行AppleScript,动态插入指定签名内容。
第一步:在“邮件”→“偏好设置”→“规则”中,点击左下角“添加规则”。
第二步:设置条件为“收件人包含”,输入目标客户邮箱域名,如“@company-a.com”;若需匹配多个客户,点“+”追加“收件人包含”条件,填入“@company-b.com”。
第三步:在操作栏选择“运行AppleScript”,点击右侧“选择…”按钮。
此时会弹出文件选择窗口,你必须提前写好并保存一个.scpt文件——该脚本作用是清空当前邮件默认签名,再插入你指定的签名文本(含格式)。直接双击运行测试脚本无效,必须通过规则调用才生效。
编写并嵌入签名替换脚本
方法一:使用脚本编辑器快速生成基础模板
打开“脚本编辑器”(/应用程序/实用工具),新建文档,粘贴以下代码:
use sys : application "System Events"
use mail : application "Mail"
tell mail
set theMessage to first outgoing message
set message signature of theMessage to "客户-正式"
end tell
注意:引号内的"客户-正式"必须与你在“签名”面板中创建的签名**完全一致**,包括大小写和连字符。保存为“客户签名.scpt”,格式选“脚本”,位置建议放在“文稿”文件夹便于查找。
方法二:手动复制签名HTML源码(兼容性更强)
在“邮件”→“偏好设置”→“签名”中,右键点击“客户-正式”签名→“在新窗口中显示”,全选右侧预览区内容→右键“检查元素”→在开发者工具中定位到
【关键提醒:脚本保存后,必须在“邮件”→“偏好设置”→“安全性”中勾选“允许从互联网下载的脚本运行”,否则规则执行时会静默失败】。
验证与启用规则
1. 返回“规则”设置页,确认刚创建的规则已启用(左侧复选框打勾)。
2. 点击“条件”旁的“测试”按钮,系统会模拟发送一封收件人为@company-a.com的测试邮件,并提示“规则已应用”。
3. 实际新建一封邮件,收件人填test@company-a.com,主题任意,正文留空——发送前立即查看邮件底部:签名区域应已变为“客户-正式”内容,而非账户默认签名。
4. 若未变化,关闭邮件应用,重新打开;仍无效则检查脚本里签名名称是否拼错,或重启Mac让规则缓存刷新。











