使用 nodemailer 在 Node.JS 中发送电子邮件(错误:554 6.6.0 发送消息以进行传递时出错)

Posted

技术标签:

【中文标题】使用 nodemailer 在 Node.JS 中发送电子邮件(错误:554 6.6.0 发送消息以进行传递时出错)【英文标题】:send EMail in Node.JS using nodemailer(Error: 554 6.6.0 Error sending message for delivery) 【发布时间】:2021-11-27 15:37:02 【问题描述】:

我正在尝试使用nodemailer 模块发送一些电子邮件。

这是我的程序:

const nodeMailer = require('nodemailer');
const randomSentence = require('random-sentence');


let mailList = [
    'gmans8951@gmail.com',
    'hamideh.2020ha@gmail.com',
    'mali1370.goli@gmail.com',
    'golgolniamilad@gmail.com'
]


async function test()    

    let transporter = nodeMailer.createTransport(
        host: 'smtp.mail.yahoo.com',
        port: '465',
        secure: true,
        auth: 
            user: 'milad1395@yahoo.com',
            pass: 'xxxxxxxxxxx'
        
    );

    try
        for (let index = 0; index < mailList.length; index++) 
            let mailBody = randomSentence();
            console.log(mailBody);
            const contact = mailList[index];
            await transporter.sendMail(
                from: 'Node Mailer Test App <milad1395@yahoo.com>',
                to: contact,
                subject: 'test',
                html: mailBody
            )
        
        console.log('All mails sent successfully!');
    catch(err)
        console.log(`Error: $err`);
    


let forCount = 1;

for (let index = 0; index < forCount; index++) 
    test();

如果我运行这个程序,它可以正常工作:

$ node debug.js                                                                                                                                                    
message 0: Ecmiw perpef suchuf runog olu duiduz remis ehere bevu fetuh leh areri gujin kuvug bifa.
message 1: Tuemigo lelsojkil we fenob meboceuti rifa ci ewiilu fisif uwois apovev seplep kotpi voug vek.
message 2: Suvne goeviru gigiwo dec pitak daiwa edo fifmij ne lad osezo wilomdo ore kebpenu nig zifvi gocpo.
message 3: Kibep pevkih cuf jar du lu li loj gicrioke fuwdij fo fo tiho pupaj pogpisu vogo uja.
All mails sent successfully!

但如果我将forCount 变量增加到 2,它会发送一些电子邮件,但随后会出现以下错误:

Error: Error: Message failed: 554 6.6.0 Error sending message for delivery.

问题 1:为什么会出现此错误?问题 2:如何解决此问题?

【问题讨论】:

【参考方案1】:

我终于找到了我的问题的答案:)

似乎这个问题与雅虎服务器有关,而不是我的代码。也许雅虎使用了一种激进的过滤算法来减少其服务器上的流量。

顺便说一句,如果你也遇到这个问题,我建议你迁移到另一个交付提供商(例如 Gmail)。

【讨论】:

以上是关于使用 nodemailer 在 Node.JS 中发送电子邮件(错误:554 6.6.0 发送消息以进行传递时出错)的主要内容,如果未能解决你的问题,请参考以下文章

node.js使用Nodemailer发送邮件

Node.js使用NodeMailer发送邮件

使用 node.js、node mailer 和 nodemailer-mailgun-transport 发送模板化电子邮件

使用 nodemailer 在 Node.JS 中发送电子邮件(错误:554 6.6.0 发送消息以进行传递时出错)

使用 nodemailer 通过 Node.js 发送电子邮件不起作用

使用 Sendgrid/Nodemailer 将 Angular 表单数据发布到 Node.js