Odoo ir.mail_server外发邮件测试成功但收件人收不到发票邮件
Odoo Gmail SMTP 发信无报错但收件人收不到邮件排查方案
你的配置连接测试通过,说明SMTP基础参数格式、端口连通性的初检是正常的,之前可用现在失效且无前端报错,按以下优先级从易到难排查:
1. 优先检查Odoo内部邮件队列
- 进入后台「设置 > 技术 > 邮件」菜单,找到对应发票邮件的生成记录:
- 很多时候前端无报错是因为邮件根本没触发发送,卡在队列里了。先看记录状态,如果是待发送状态,直接去定时任务列表找
Mail: Email Queue Manager,确认任务是启用状态,最近执行时间没有断层,没有被其他长耗时任务阻塞。 - 核对邮件记录里的发件人地址:Gmail SMTP强制要求发件人地址必须和SMTP认证的邮箱账号完全一致,如果你近期改了系统全局发件人、或是发票模板绑定了其他别名发件箱,Gmail会直接静默丢弃邮件,不会在连接测试阶段报错。
- 很多时候前端无报错是因为邮件根本没触发发送,卡在队列里了。先看记录状态,如果是待发送状态,直接去定时任务列表找
- 如果队列里有发送失败的隐藏报错,直接根据错误信息定位即可,前端不会展示这类底层报错。
2. 排查Gmail账号侧的拦截问题
- 如果你近期给Gmail账号开了两步验证,原来的普通账号密码已经不能用于SMTP认证了,必须替换成应用专用密码,这类场景经常出现连接测试假过、实际发信被拦截的情况。
- 登录对应Gmail网页端:
- 先看「已发送」文件夹里有没有这封发票邮件:如果有,说明Odoo到Gmail的发信链路是通的,去查垃圾邮件文件夹里的退信通知,大概率是发票附件、邮件内容触发了反垃圾规则,或是收件方服务商拒收了Gmail来源的邮件。
- 如果已发送里没有记录,去Google账号的「安全 > 最近安全活动」里看,是不是你Odoo服务器的IP被判定为异常登录给拦了,手动标记信任即可,或者直接换应用专用密码认证。
- 如果你用的是企业版Gmail Workspace,找管理员确认后台有没有开外发限制,比如拦截带附件的对外邮件、限制非官方客户端发信。
3. 服务器侧链路与日志核查
- 直接在Odoo所在的服务器上用命令行测Gmail SMTP实际发信能力,排除IP被Gmail拉黑的情况:
先测端口连通性:
连通后手动走SMTP流程发测试信,如果返回5xx状态码,直接根据状态码查对应问题,常见的是IP被列进垃圾邮件黑名单、短时间发信量超限触发流控。openssl s_client -connect smtp.gmail.com:465 - 开启Odoo邮件模块的debug日志,复现一次发发票邮件的操作,看日志里SMTP交互的全量返回,类似附件超过Gmail 25M限制、连接中途被重置这类软错误,前端完全不会提示,只会写在服务端日志里。
4. 快速修复验证
- 把SMTP配置的连接安全改成
STARTTLS、端口换成587再测试,部分运营商、机房会对465端口的长连接做静默丢包,导致鉴权握手能过,实际发信数据传输出去就被丢。 - 清空队列里卡住的历史失败邮件,手动触发一次邮件队列调度任务,排除队列死锁导致新邮件不调度的问题。
内容的提问来源于stack exchange,提问作者Sidharth Panda
相关产品推荐
相关产品推荐

