Nodemailer搭配Mailtrap发送邮件无法送达指定地址,仅Mailtrap账户可收到邮件
问题原因
这不属于代码逻辑错误,问题根源在于你使用的SMTP服务本身的定位:
- Mailtrap是专门面向开发测试场景的邮件捕获工具,你配置的
smtp.mailtrap.io是其专属测试SMTP服务器,设计逻辑就是拦截所有通过该服务发出的邮件,全部存入你绑定的Mailtrap账户收件箱,不会对外投递到任何真实目标收件地址,作用是避免测试阶段误发邮件给真实用户造成干扰。
解决方案
- 若你仍处于开发测试阶段,当前行为完全符合预期,直接在Mailtrap中校验邮件内容、格式、收件人参数是否符合要求即可,无需修改代码。
- 若你需要正式发送可被真实收件人接收的邮件,需将Nodemailer的传输配置替换为支持对外发信的SMTP服务:
- 选用自有企业邮箱的SMTP服务,或第三方事务性邮件发送服务的SMTP配置
- 对应修改
createTransport配置项中的host、port、auth参数为新SMTP服务提供的官方凭据 - 注意
mailOptions中的from发件人地址需和你使用的发信服务要求的发件域名保持一致,否则会被反垃圾策略拦截导致投递失败
内容的提问来源于stack exchange,提问作者Sesho
相关产品推荐
相关产品推荐

