用途:通过环境变量配置的SMTP凭据发送外发邮件;按需将本地文件以MIME附件加入;可选通过IMAP APPEND把已发邮件同步到已发送邮箱,便于跨客户端查看;发送前可校验SMTP与已发送同步配置;返回机器可读的JSON状态或错误。
主要能力:支持--to必填收件人(可重复或逗号分隔)、--cc、--bcc、--subject、--body、--content-type(plain或html)、--from、--attach(可重复或逗号分隔)、--max-attachment-bytes、--message-id、--in-reply-to、--references;支持--sync-sent/--no-sync-sent、--sent-mailbox、--sent-flags(默认\Seen)、--sent-sync-required。
使用方式:先配置SMTP环境变量(参见references/env.md与assets/config.example.env);启用同步时配置IMAP已发送同步环境变量并安装imapclient(python3 -m pip install imapclient)。校验配置:python3 scripts/smtp_send.py check-config。发送:python3 scripts/smtp_send.py send --to recipient@example.com --subject "SMTP test" --body "Hello from email-smtp-send"。带附件发送时重复使用--attach传入本地路径,例如--attach ./report.pdf --attach ./appendix.xlsx。带同步发送时使用--sync-sent与--sent-mailbox "Sent Items"。
环境变量:SMTP_HOST、SMTP_PORT、SMTP_SSL、SMTP_STARTTLS、SMTP_USERNAME、SMTP_PASSWORD、SMTP_FROM、SMTP_CONNECT_TIMEOUT、SMTP_SUBJECT、SMTP_BODY、SMTP_CONTENT_TYPE、SMTP_MAX_ATTACHMENT_BYTES、SMTP_SYNC_SENT、SMTP_SYNC_SENT_REQUIRED,以及SMTP_SENT_IMAP_*系列;兼容回退IMAP_HOST、IMAP_PORT、IMAP_SSL、IMAP_USERNAME、IMAP_PASSWORD、IMAP_CONNECT_TIMEOUT。
输出与错误:check-config输出脱敏的SMTP配置、默认值与已发送同步配置JSON;send成功输出type=status对象,含event=smtp_sent、发件人、收件人摘要、主题、SMTP主机/端口、message_id、附件数量与元数据、sent_sync对象;send失败向stderr输出type=error,事件为smtp_send_invalid_args或smtp_send_failed,同步必需且失败时为smtp_sent_sync_failed。无效配置退出码2,发送失败退出码1,同步必需时同步失败退出码1。
限制:仅支持SMTP外发与可选IMAP已发送追加;同步模式依赖imapclient;未提供价格或平台等信息。