nodemailer和zoho email issue' 530必须首先发出STARTTLS命令。'

时间:2017-09-12 08:16:16

标签: node.js nodemailer zoho

我使用的是最新版本的nodemailer 4.1.0版。我尝试使用此处提供的示例代码     https://nodemailer.com/smtp/

这是我的代码

 let transporter = nodemailer.createTransport({
        host: 'smtp.zoho.com',
        port:587,
        secure: false,           
        auth: {
            user: this.user,
            pass: this.password
        }
    });

     var mailOptions: nodemailer.SendMailOptions = {
        from: ****@***.com,
        to: test@abc.com,
        subject: 'Hello ✔',
        text: 'Hello world ✔', 
        html: '<b>Hello world ✔</b>'
    };

   transporter
            .sendMail(mailOptions)
            .then(
                (info) => {
                  //  console.log(info);
                    resolve({status: info.messageId})
                }
            )
            .catch(err => {
             //   console.log(err);
                reject({status: err.toString()})
            })

我收到以下错误。我已将安全标志设置为false,并且还使用了ignodeTLS。之前版本的nodemailer 0.7.1没有任何问题。我错过了任何特定的配置吗?

   { Error: Invalid login: 530 Must issue a STARTTLS command first.
at SMTPConnection._formatError 
(C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:577:19)
at SMTPConnection._actionAUTHComplete (C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:1306:34)
at SMTPConnection._responseActions.push.str (C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:349:26)
at SMTPConnection._processResponse (C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:733:20)
at SMTPConnection._onData (C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:529:14)
at Socket._socket.on.chunk (C:\Project\NotificationService\node_modules\nodemailer\lib\smtp-connection\index.js:481:47)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:548:20)
  code: 'EAUTH',
  response: '530 Must issue a STARTTLS command first.',
  responseCode: 530,
  command: 'AUTH PLAIN' }

2 个答案:

答案 0 :(得分:2)

你也可以使用这个没有这些tls参数默认值为false。 你得到错误是因为你没有通过服务:节点制造商的'zoho'

let transporter = nodemailer.createTransport({
        service:'Zoho',
        host: this.service,
        port:587,
        secure: false,
        auth: {
            user: this.user,
            pass: this.password
        }
    });

答案 1 :(得分:1)

在完成打字(&#34; @ types / nodemailer&#34; )文件后,我添加了以下标志

1)服务:&#39; Zoho&#39;

2)requireTLS:false

现在正在运作:)

let transporter = nodemailer.createTransport({
        service:'Zoho',
        host: this.service,
        port:587,
        secure: false,
        ignoreTLS:true,
        requireTLS:false,
        auth: {
            user: this.user,
            pass: this.password
        }
    });