nodemailer邮件发送如何判断成功

问题说明

在to同时bcc,也就是同时存在收件人和密送人时,收件人邮件地址是错误的,也能返回成功。
给506921467发邮件,同时抄送其他邮箱,主收件人是失败的,抄送的邮件显示收件人为空.
以下日志是给email:506921467@qq.com发邮件,所有人都是成功的

[2020-10-21T16:34:08.046] [DEBUG] email.service.js - sendEmail
506921467@qq.com 【xxxx】验证码:615153,该验证码5分钟内有效,限本次使用,请勿泄露验证码。
{“accepted”:[“506921467@qq.com”,“xxxxx@gmail.com”,“xxxx@leyoai.com”],“rejected”:[],“envelopeTime”:1389,“messageTime”:794,“messageSize”:490,“response”:“250
Ok
010001754a4b433d-29c38a95-7e6a-445b-b29a-fa327e257726-000000”,“envelope”:{“from”:“xxxx@yorkbbs.ca”,“to”:[“506921467@qq.com”,“xxxx@gmail.com”,“xxxxx@xxx.com”]},“messageId”:“00893220-2af3-721e-854b-9f932dc70e8c@xxxx.ca”}

以下日志是给email:506921467发邮件,收件人肯定是失败的

[2020-10-21T16:36:20.590] [DEBUG] email.service.js - sendEmail
506921467 【XXXX】验证码:711403,该验证码5分钟内有效,限本次使用,请勿泄露验证码。
{“accepted”:[“xxx@gmail.com”,“xxx@leyoai.com”],“rejected”:[],“envelopeTime”:1051,“messageTime”:684,“messageSize”:468,“response”:“250
Ok
010001754a4d4957-cf38b1c6-b786-46c2-90ec-220b28852521-000000”,“envelope”:{“from”:“admin@yxx.ca”,“to”:[“xxx@gmail.com”,“xxx@xxx.com”]},“messageId”:“f38e5898-d719-5262-e2cd-106d3c3e12da@xxxx.ca”}

从上面两个对比可以看出,都没有报异常,但是返回信息中的accepted不一样。
图中原始email我做了处理。

原因分析

抱歉,原因未知,从源码中也没有找到原因。
可能组件的逻辑就是这样的。
多个收件人,有一个成功就算成功。

经过测试,只有一个收件人时,按上面的错误邮箱,是会提示发送失败的。

解决方案

判断accepted中否有收件人,有则认为发送成功,没有,则认为发送失败。

遗留问题

1.经过测试,在QQ邮箱里,将发件人的邮箱加到黑名单中,邮箱中说的是邮件会记录在垃圾信息中,但是经过测试发现,根据就收不到邮件。发送方成功的,没有任何异常,accepted中也会有收件人的地址。但收件人邮箱任何地方都没有邮件。从黑名单中删除后,可正常接收邮件。原因为何,不太清楚?
2.返回信息中rejected为空,什么时候有值,不太清楚?

以上两个问题,有清楚的可以给我留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏展翅888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值