Nodemailer缺少“ PLAIN”的凭据

时间:2018-08-22 19:19:57

标签: nodemailer zoho

Nodemailer在完全相同的配置下正常工作了几个月。

var smtpTransport = nodemailer.createTransport({ service: "Zoho", auth: { user: environment.smtp.email, password: environment.smtp.password }, secure: false, tls: { rejectUnauthorized: false } });

var mailOptions = { from: environment.smtp.email, to: 'some@email.com', subject: 'Subject', html: "Mail content here." }

smtpTransport.sendMail(mailOptions, function(error, response){ console.log(error) });

它抛出“缺少“ PLAIN”的凭据”。我已经在应用程序中的许多地方使用了此配置,现在它到处都会引发此错误。但是当我第一次编写代码时,效果很好。

  

“ nodemailer”:“ ^ 4.0.1”

2 个答案:

答案 0 :(得分:0)

这是配置设置。 “主机”字段丢失,在Nodemailer V3及更高版本中似乎是必填字段。

https://nodemailer.com/smtp/

var smtpTransport = nodemailer.createTransport({ host: "smtp.zoho.com", service: "Zoho", port: 25, secure: false, auth: { user: 'some@email.com', pass: "123456" }, tls: { rejectUnauthorized: false } });

答案 1 :(得分:0)

您可能缺少凭据。如果要从.env获取凭据,则可能要使用dotenv库来获取它们。

var dotenv = require("dotenv")
dotenv.config()

var smtpTransport = nodemailer.createTransport({
    service: "Gmail",
    port: 465,
    auth: {
      user: process.env.GMAIL_USERNAME, 
      pass: process.env.GMAIL_PASSWORD, 
    },
  })

如果使用远程服务托管服务器,则可能需要查看它们是否对.env变量有要求。诸如Vericel之类的某些服务会在启动服务器之前注入.env变量。