我正在向我的用户发送验证电子邮件。我正在使用 Mailgun API 从 Digital Ocean Nodejs Droplet 访问它。我还使用 Cloudflare 作为 DNS 和 CDN。大多数时候,电子邮件没有被发送,我在 Mailgun 日志中收到此错误:“无法连接到 MX 服务器:- std.[BLURRED].edu.tr:连接失败:拨号时:拨打 tcp4 [ip模糊]:0->[ip 模糊]:25: i/o 超时"
我将这些电子邮件发送给使用 Outlook 作为电子邮件提供商的大学生。
这是日志: { “原因”:“一般”, “邮寄状态”: { “尝试-否”:1, “描述”: ””, "mx-host": "std.[模糊].edu.tr", "message": "无法连接到 MX 服务器: - std.[BLURRED].edu.tr:连接失败:拨号时:拨打 tcp4 [BLURRED]:0->[BLURRED]:25:i/o 超时”, “会话秒”:30.144, “代码”:612, “增强代码”:“” }, “接收者-提供者”:“其他”, “活动”:[], “严重性”:“永久”, “模板”: { "name": "重置密码邮箱" }, "收件人域": "std.[模糊].edu.tr", “用户变量”:{ “名称”:“[模糊]”, “url”:“[模糊]” }, “信息”: { “大小”:535, “附件”:[], “标题”:{ [模糊] } }, “日志级别”:“错误”, “标签”:[], “标志”:{ “是测试模式”:假, “已验证”:正确, “已路由”:假, “是系统测试”: false }, “时间戳”:1713293763.1380103, “贮存”: { “地区”:“欧洲-西1”, “env”:“生产”, “关键”:“[模糊]”, “url”:“[模糊]” }, “信封”: { "发件人": "noreply@mg.[模糊].com", “目标”:“[模糊]@std。[模糊].edu.tr”, “运输”:“smtp”, “发送 IP”:“[模糊]” }, "事件": "失败", "收件人": "[模糊]@std.[模糊].edu.tr", “id”:“[模糊]” }
我模糊了重要的东西。
我联系了 Mailgun 支持人员,但他们没有回复。我需要紧急帮助
我通过使用 SMTP 而不是 Mailgun API 解决了这个问题。有时 Mailgun 可能正在使用端口 25,然后电子邮件提供商阻止了它。现在我通过 SMTP 手动使用端口 587:
// Create a Nodemailer transporter using Mailgun SMTP credentials
const transporter = nodemailer.createTransport({
host: 'smtp.mailgun.org',
name: 'smtp.mailgun.org',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: '',
pass: ''
},
tls: {
// do not fail on invalid certs
rejectUnauthorized: false,
},
});