调用MailHog接口释放邮件到Gmail返回200但收件箱无法收到邮件
排查步骤
Gmail发件账号配置校验
如果你的发件账号developer-send-mail@gmail.com开启了两步验证(2FA),必须生成应用专用密码替换请求体Password字段的普通登录密码,主密码无法通过Gmail SMTP认证。如果未开启两步验证,目前Gmail已经默认下线「低安全性应用访问」选项,没有该权限的账号同样会被拒绝SMTP登录,更推荐开启两步验证后使用应用专用密码投递。
同时登录发件账号的Gmail网页版,查看是否有安全拦截提醒,确认账号未因异常发送行为被临时限制权限。查看MailHog运行日志
release接口返回200仅代表MailHog成功接收了你的释放请求,不代表实际SMTP投递成功。查看MailHog的运行时输出日志,里面会记录投递过程的具体报错,比如SMTP认证失败、Gmail服务器拒绝连接、投递超时等关键信息,可直接定位问题根因。校验SMTP请求参数
你当前使用的587端口是Gmail的STARTTLS协议端口,需确认你部署的MailHog版本默认支持STARTTLS,部分旧版本需要显式开启TLS配置才能正常连接。也可以尝试将请求体的Port改为465(Gmail SMTP SSL端口)重新测试。检查邮件合规性与退信
你测试的邮件无主题、内容极短,极易触发Gmail反垃圾策略被直接拦截,不会进入收件箱甚至垃圾箱。建议补充正常邮件主题、结构化正文后再测试。同时登录发件Gmail账号查看是否收到退信通知,退信中会明确标注被拒收的具体原因。验证网络连通性
在MailHog部署的服务器上执行openssl s_client -connect smtp.gmail.com:587 -starttls smtp命令,测试到Gmail SMTP服务器的连通性,确认没有防火墙、出口代理或网络策略拦截对外的SMTP请求。
内容的提问来源于stack exchange,提问作者Nopparut

