Nodemailer Отсутствуют учетные данные для "PLAIN"

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) });

Это бросает "Недостающие полномочия для" РАДОСТИ "". Я использовал этот конфиг во многих местах в приложении, и теперь он выдает эту ошибку везде. Но работал хорошо, когда я впервые написал код.

"nodemailer": "^ 4.0.1"

1 ответ

Вот настройки конфига. Поле 'host' отсутствует, и оно кажется обязательным в 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 } });

Возможно, вам не хватает учетных данных. Если вы получаете свои учетные данные из.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.

Другие вопросы по тегам