newsreport_agent_for_traffic/EMAIL_GUIDE.md

2.9 KiB
Raw Blame History

邮件发送功能指南

当前发送链路

项目中与邮件相关的入口有两个:

  1. auto_report_and_email.py
  2. email_web_app.py

两者都依赖:

  • EMAIL_SENDER
  • EMAIL_PASSWORD
  • email_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

单次发送

当前“单次发送”按钮执行的不是“发送已有报告文件”,而是:

  1. 调用 main.py --mode full --sources all
  2. 全站抓取一次
  3. 更新本地向量库
  4. 生成最新报告
  5. 将最新报告发送给勾选的收件人

每周定时发送配置

页面支持保存:

  • 是否开启
  • 星期几
  • 发送时间
  • 使用全部已管理收件人

配置文件位置:

  • 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 认证失败

检查:

  1. 是否把 QQ 登录密码当成了授权码
  2. QQ 邮箱是否开启 SMTP
  3. 授权码是否重新生成后未同步到 .env

Web 页面提示配置不完整

检查:

  • EMAIL_SENDER
  • EMAIL_PASSWORD

单次发送失败

单次发送依赖完整流程,失败原因可能来自:

  1. main.py --mode full 报错
  2. 某个数据源抓取异常
  3. 报告未生成
  4. SMTP 发送失败

发送不到收件箱

检查:

  1. 垃圾邮件箱
  2. 发件箱是否有投递记录
  3. 收件地址拼写是否正确