【问题标题】:nodemailer unable to send mails from nodeJSnodemailer 无法从 nodeJS 发送邮件
【发布时间】:2018-02-01 21:50:33
【问题描述】:

我正在使用 nodemailer 发送电子邮件,尤其是到 Outlook。

更新:

使用下面的代码我得到错误:消息失败错误

var nodemailer = require('nodemailer');

 // create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
    host: 'smtp.office365.com',
    port: 587,
    secureConnection: false, // secure:true for port 465, secure:false for port 587
    auth: {
      user: 'user@domain.com',
      pass: 'password'
    },
    tls: { ciphers: 'SSLv3' }
});

// setup email data with unicode symbols
          let mailOptions = {
            from: '"Fred Foo ????" <foo@blurdybloop.com>', // sender address
            to: 'myemail@companydomain.com', // list of receivers
            subject: 'Hello ✔', // Subject line
            text: 'Hello world ?', // plain text body
            html: '<b>Hello world ?</b>' // html body
          };

          transporter.sendMail(mailOptions, (error, info) => {
            if (error) {
              return console.log(error);
            }
            console.log('Message %s sent: %s', info.messageId, info.response);
          });

完整的错误跟踪:

错误:消息失败:550 5.7.60 SMTP;客户端无权作为此发件人发送 [SG2PR06MB1725.apcprd06.prod.outlook.com] 在 SMTPConnection._formatError (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:557:19) 在 SMTPConnection._actionSMTPStream (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:1385:34) 在 SMTPConnection._responseActions.push.str (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:907:22) 在 SMTPConnection._processResponse (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:706:20) 在 SMTPConnection._onData (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:509:14) 在 TLSSocket._socket.on.chunk (/var/www/html/Express/Local-MEAN-dev/node_modules/nodemailer/lib/smtp-connection/index.js:657:51) 在 emitOne (events.js:96:13) 在 TLSSocket.emit (events.js:191:7) 在 readableAddChunk (_stream_readable.js:176:18) 在 TLSSocket.Readable.push (_stream_readable.js:134:10) 在 TLSWrap.onread (net.js:563:20) 代码:'消息', 响应:'550 5.7.60 SMTP;客户端无权作为此发件人发送 [SG2PR06MB1725.apcprd06.prod.outlook.com]', 响应代码:550, 命令:“数据”}

【问题讨论】:

标签: node.js email nodemailer


【解决方案1】:

我遇到了同样的问题,并通过将from 字段与auth.user 字段对应来解决。

即像下面这样的东西对我有用。

var nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
    host: 'smtp.office365.com',
    port: 587,
    auth: {
        user: 'test-user@gmail.com',
        pass: 'password'
    },
    tls: { ciphers: 'SSLv3' }
});

let mailOptions = {
    from: 'user-alias <test-user@gmail.com>', // sender address
    to: 'myemail@companydomain.com', // list of receivers
    subject: 'Hello ✔', // Subject line
    text: 'Hello world ?', // plain text body
    html: '<b>Hello world ?</b>' // html body
};

transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log('Message %s sent: %s', info.messageId, info.response);
);

注意test-user@gmail.com 的两次出现应该是相同的。

我认为这是因为某些电子邮件服务器希望确保声明的电子邮件发件人与真正的电子邮件发件人相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多