name: email-notify description: 在Codex完成任务后发送SMTP邮件通知。当一个Codex或Claude运行完成时,或需要通过邮件通知任务完成情况(包含设备名称、项目名称、状态和摘要)时使用。
邮件通知
概述
在每个Codex任务后发送邮件通知。使用辅助脚本来解析项目名称并通过SMTP发送邮件。
用户准备
1) 配置环境变量
在~/.bashrc(Linux)或~/.zshrc(macOS)中添加以下行:
export CODEX_MACHINE_NAME="机器名称" # 例如:Macbook
export CODEX_EMAIL_SMTP_HOST="smtp.example.com"
export CODEX_EMAIL_SMTP_PORT="587"
export CODEX_EMAIL_USERNAME="user@example.com"
export CODEX_EMAIL_PASSWORD="..."
export CODEX_EMAIL_FROM="user@example.com"
export CODEX_EMAIL_TO="recipient1@example.com,recipient2@example.com"
export CODEX_EMAIL_USE_TLS="false" # true/false,默认false
export CODEX_EMAIL_USE_SSL="true" # true/false,默认true
如果您的SMTP服务器不需要身份验证,请不设置CODEX_EMAIL_USERNAME和CODEX_EMAIL_PASSWORD。
对于SMTPS(通常端口465),将CODEX_EMAIL_USE_SSL设置为true;对于STARTTLS,将CODEX_EMAIL_USE_TLS设置为true。
不要同时将CODEX_EMAIL_USE_TLS和CODEX_EMAIL_USE_SSL设置为true。
2) 在项目AGENTS.md中添加指令
例如,在AGENTS.md中添加此指令:
当每个代理运行完成时,或需要向用户发送任何通知时,使用技能email-notify来通知用户。
工作流程
1) 提供项目名称来源(可选)
- 要覆盖文件夹名称,请在
AGENTS.md中使用以下方式之一定义项目名称:- YAML frontmatter:
project_name: 我的项目(或name:) - 纯文本行:
Project Name: 我的项目
- YAML frontmatter:
- 如果未找到名称,脚本将使用项目文件夹名称。
2) 在任务完成时发送通知
- 生成简短的任务标题(3-8个单词)。
- 选择一个执行状态:
success(成功)、failed(失败)、partial(部分完成)、blocked(阻塞)等。 - 编写简要的结果摘要;避免包含敏感信息。
运行:
python3 ~/.codex/skills/email-notify/scripts/send_email_notification.py \
--task-title "..." \
--status "success" \
--summary "..." \
--project-name "..."
资源
scripts/send_email_notification.py:发送邮件通知并解析项目名称。