使用 AppleScript 在macOS Mail.app 中自动发送纯文本邮件,无需 SMTP 凭据,适用于警报和报告,不适合批量或 HTML 邮件。
osasript-email. 通过 Mail.app 使用 AppleScript. 不需要密码或 API 密钥- Mail. app hands auth.是一项面向实际任务的技能,主要用于Prerequisites. macOS with Mail.app 安装. 至少配置一个电子邮件账户.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过 Mail.app 使用 AppleScript 发送邮件。无需密码或 API 密钥 — 认证由 Mail.app 自动处理。
使用 exec 执行内联 osascript 命令。下方脚本为标准模板 — 请完整复制,再替换对应字段值。
osascript << 'APPLESCRIPT'
tell application "Mail"
set m to make new outgoing message with properties {subject:"YOUR SUBJECT", content:"YOUR BODY", visible:false}
tell m
make new to recipient with properties {address:"recipient@example.com"}
make new to recipient with properties {address:"cc@example.com"}
end tell
send m
end tell
return "sent"
APPLESCRIPT
转义规则:
"\n(AppleScript 将字符串中的字面换行符视为正文内容)当从 Python 定时任务脚本或 agent 工作流中发送邮件时使用。请直接复制 scripts/send_email.py 中的函数 — 不要自行重写。
from scripts.send_email import send_email
send_email(
subject="Daily Report — 2026-01-01",
body="Here is the summary...",
to="primary@example.com",
cc="secondary@example.com", # 可选
sender="your-mail-app-account@icloud.com" # 必须与 Mail.app 中配置的账户一致
)
完整实现请参见 scripts/send_email.py。
在 tell m 代码块内添加额外的 make new to recipient 行即可:
make new to recipient with properties {address:"a@example.com"}
make new to recipient with properties {address:"b@example.com"}
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
osascript: Mail got an error |
Mail.app 未运行,或未配置有效邮箱账户 | 打开 Mail.app,检查账户设置 |
| 邮件进入“草稿”文件夹 | 脚本在执行到 send m 前发生错误,导致未实际发送 |
检查转义字符是否正确 |
execution error: Mail got an error: Invalid recipient |
收件人地址拼写错误 | 核对收件人邮箱地址 |
| 邮件成功发送但正文为空 | content 字符串中存在换行转义问题 | 建议改用 Python 辅助函数 |
returncode != 0 且无 stderr 输出 |
osascript 权限被拒绝 | 授予自动化权限:macOS Ventura 及更高版本:系统设置 → 隐私与安全性 → 自动化;较早版本 macOS:系统偏好设置 → 安全性与隐私 → 自动化 |
references/attachments.md相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章