2.9 KiB
2.9 KiB
邮件发送功能指南
当前发送链路
项目中与邮件相关的入口有两个:
auto_report_and_email.pyemail_web_app.py
两者都依赖:
EMAIL_SENDEREMAIL_PASSWORDemail_sender.py
当前默认 SMTP 发送为 QQ 邮箱。
环境变量
EMAIL_SENDER=你的QQ邮箱@qq.com
EMAIL_PASSWORD=你的QQ邮箱SMTP授权码
EMAIL_RECIPIENTS=收件人1@qq.com,收件人2@qq.com
说明:
EMAIL_PASSWORD必须是 SMTP 授权码,不是 QQ 登录密码EMAIL_RECIPIENTS只对auto_report_and_email.py默认收件人有意义- Web 界面使用
data/managed_recipients.json管理收件人
方式一:脚本发送
完整流程后发送
python auto_report_and_email.py --mode full --sources all
基于现有向量库生成报告并发送
python auto_report_and_email.py --mode report
只发送当前 data/ 中最新报告
python auto_report_and_email.py --mode send
方式二:Web 界面发送
python email_web_app.py
默认访问:
http://127.0.0.1:7860
当前页面功能
发送对象管理
- 新增邮箱
- 删除邮箱
- 持久化到
data/managed_recipients.json
单次发送
当前“单次发送”按钮执行的不是“发送已有报告文件”,而是:
- 调用
main.py --mode full --sources all - 全站抓取一次
- 更新本地向量库
- 生成最新报告
- 将最新报告发送给勾选的收件人
每周定时发送配置
页面支持保存:
- 是否开启
- 星期几
- 发送时间
- 使用全部已管理收件人
配置文件位置:
data/scheduled_send_config.json
关于定时发送的当前限制
email_web_app.py 中保留了后台调度线程实现,但脚本直接运行时当前没有自动调用 start_scheduler_thread()。
因此当前可确认的状态是:
- 页面可以保存定时配置
- “单次发送”可以正常工作
- 如果要稳定执行真正的自动定时发送,建议优先使用操作系统定时任务调用
auto_report_and_email.py
推荐做法:
python auto_report_and_email.py --mode full --sources all
由 Windows 任务计划程序或 Linux cron 定时执行。
邮件内容
默认会发送:
- 报告附件:
report_*.txt - 默认主题:时间戳主题,或者前端自定义主题
常见问题
SMTP 认证失败
检查:
- 是否把 QQ 登录密码当成了授权码
- QQ 邮箱是否开启 SMTP
- 授权码是否重新生成后未同步到
.env
Web 页面提示配置不完整
检查:
EMAIL_SENDEREMAIL_PASSWORD
单次发送失败
单次发送依赖完整流程,失败原因可能来自:
main.py --mode full报错- 某个数据源抓取异常
- 报告未生成
- SMTP 发送失败
发送不到收件箱
检查:
- 垃圾邮件箱
- 发件箱是否有投递记录
- 收件地址拼写是否正确