nodemailer 错误,获取:无效登录:451 4.7.0 临时服务器错误。请稍后再试。(已研究,stackoverflow 上的资源有限)

时间:2021-07-14 21:04:46

标签: node.js outlook office365 nodemailer

在网上查了类似的帖子,还是没搞清楚问题所在。我正在尝试使用我的 Outlook 企业电子邮件通过 nodemailer 发送电子邮件。我收到了无法修复的错误消息。

这里是错误信息:

Error: Invalid login: 451 4.7.0 Temporary server error. Please try again later. PRX4  [BY3PR10CA0026.namprd10.prod.outlook.com]
    at SMTPConnection._formatError (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:774:19)
    at SMTPConnection._actionAUTHComplete (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:1518:34)
    at SMTPConnection.<anonymous> (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:1476:18)
    at SMTPConnection._processResponse (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:937:20)
    at SMTPConnection._onData (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:739:14)
    at TLSSocket.SMTPConnection._onSocketData (/Users/zhongzechen/Hello--website--backend/node_modules/nodemailer/lib/smtp-connection/index.js:189:44)

尝试将 tls 添加到 { ciphers: 'SSLv3' },没有成功。

这是我的代码的一部分:

    const output = `<h3>Hello</h3>`;

    let transporter = nodemailer.createTransport({
        host: "smtp-mail.outlook.com",
        secure: false, 
        port: 587, 
        auth:{
            user:"myoutlookemail",
            pass:"mypassword"
        }
    })

    let mailOptions ={
        from:'myoutlookemail',
        to:req.body.email,
        subject:"Hello there",
        text:"Hello there",
        html:output
    }

    transporter.sendMail(mailOptions,(error,info)=>{
        if(error){
            console.log('*********ERROR IS HAPPENING*************')
            return console.log(error);
        }
        console.log('Message Sent~~~~~~~~~~~~~~~: %s',info.response);
        //console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
    });

1 个答案:

答案 0 :(得分:0)

试试这个

根据需要编辑


const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
    service: 'service_provider',
    auth: {
        user: 'email',
        pass: 'password'
    }
});

const mailOptions = {
    from: 'email',
    to: req.body.email,
    subject: 'Protocol 5416',
    text: "Anything"
};

transporter.sendMail(mailOptions, function(error, info) {
    if (error) {
        console.log(error);
    } else {
        console.log('Email sent: ' + info.response);
    }
});