如何通过Mail.app规则与AppleScript实现收信触发单独发短信给多人
实现方案
1. 前置准备
- 确保你的Mac已经开启「信息」app的短信转发功能:在绑定的iPhone上进入「设置」-「信息」-「短信转发」,打开对应Mac设备的开关,保证Mac可以直接通过手机号发送普通短信
- 提前整理好所有需要接收短信的联系人手机号,格式为带国家码的完整号码,比如中国大陆号码为
+8613xxxxxxxxx
2. 编写AppleScript脚本
脚本核心逻辑是遍历手机号列表,给每个号码单独创建短信发送任务,不会生成群发短信。你可以根据需求自定义短信内容,也可以提取触发规则的邮件信息(比如主题、发件人、正文片段)填入短信:
using terms from application "Mail" on perform mail action with messages theMessages for rule theRule -- 配置接收短信的手机号列表,按示例格式添加多个 set recipientList to {"+8613xxxxxxxxx", "+8615xxxxxxxxx", "+8618xxxxxxxxx"} -- 遍历所有符合规则的邮件(默认单条触发的话只有1条) repeat with eachMessage in theMessages -- 提取邮件信息用于短信内容,可自定义 set mailSubject to subject of eachMessage set mailSender to sender of eachMessage set smsContent to "收到触发邮件:发件人 " & mailSender & ",主题:" & mailSubject -- 遍历手机号列表,逐个发送短信,避免群发 repeat with eachPhone in recipientList tell application "Messages" set targetService to 1st service whose service type = iMessage set targetBuddy to buddy eachPhone of targetService send smsContent to targetBuddy end tell -- 可选添加1秒间隔,避免触发风控 delay 1 end repeat end repeat end perform mail action with messages end using terms from
你可以直接修改recipientList里的手机号,也可以自定义smsContent的内容格式。
3. 脚本保存与权限配置
- 打开Mac自带的「脚本编辑器」app,把上面的代码粘贴进去
- 按
Command+S保存,存储位置选择~/Library/Application Scripts/com.apple.mail/,文件格式选择「脚本」(后缀为.scpt),自定义文件名比如sendSMSOnMail.scpt - 首次运行前需要开启权限:进入「系统设置」-「隐私与安全性」-「自动化」,确保「邮件」app有权限控制「信息」app
4. 配置Mail.app触发规则
- 打开Mail.app,点击顶部菜单栏「邮件」-「设置」-「规则」
- 点击「添加规则」,自定义规则名称,然后设置你需要的触发条件,比如「主题包含 告警」「发件人是 alert@example.com」等
- 在「执行下列操作」里选择「运行AppleScript」,在下拉框里选择你刚才保存的.scpt脚本
- 保存规则即可,后续符合条件的邮件收到后会自动触发短信发送
常见问题排查
- 如果发送失败,先单独运行脚本编辑器里的代码,确认短信可以正常发出
- 检查手机号格式是否正确,必须带国家码前缀
- 确认Mac和iPhone的网络正常,短信转发功能没有断开
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

