如何通过AppleScript在OS X下无界面发送Apple Mail邮件?
解决AppleScript批量发送Apple Mail无闪屏问题
要实现全程无屏幕显示的批量邮件发送,核心是避免创建可见的邮件窗口,通过设置邮件对象的visible属性为false,让Mail在后台完成邮件创建与发送流程。
核心代码示例
tell application "Mail" -- 循环批量发送示例(这里以发送3封测试邮件为例) repeat with i from 1 to 3 -- 创建不可见的新邮件 set newMessage to make new outgoing message with properties {¬ subject:"批量测试邮件 " & i, ¬ content:"这是第" & i & "封测试邮件内容", ¬ visible:false} -- 配置收件人(可添加多个收件人、抄送/密送) tell newMessage make new to recipient with properties {address:"target@example.com"} -- 如需抄送,取消注释下方代码 -- make new cc recipient with properties {address:"cc@example.com"} end tell -- 后台发送邮件 send newMessage end repeat end tell
关键说明
visible:false:这是解决闪屏的核心参数,设置后Mail不会为新创建的邮件弹出任何窗口,全程在后台处理。- 批量处理:循环中每次都创建全新的
outgoing message对象,确保每一封邮件都独立在后台生成,避免复用对象导致的UI意外触发。 - 权限配置:确保运行脚本的应用(如触发规则的应用)在「系统偏好设置 > 安全性与隐私 > 隐私 > 自动化」中拥有控制Mail的权限,否则脚本会因权限不足失败。
排查旧脚本问题
如果之前的脚本仍出现闪屏,检查是否存在以下操作:
- 未设置
visible:false属性,导致邮件窗口默认弹出 - 使用了
open命令打开邮件对象 - 调用了会触发UI刷新的Mail命令(如显示草稿箱等)
内容的提问来源于stack exchange,提问作者Mondy
相关产品推荐
相关产品推荐

