С помощью node.js нужно из формы вытягивать данные и отправлять на почту. Сервер реализован на express. Данные получаю без проблем. Для отправки данных на почту использую пакет nodemailer.
Проблема в отправке - письмо не отправляется. Выдает ошибку следующего содержания:
{ Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more
at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials z13sm16002309wrw.19
- gsmtp
at SMTPConnection._formatError (C:\Users\Sergey\Desktop\Project-Portfolio\no
de_modules\nodemailer\lib\smtp-connection\index.js:555:19)
at SMTPConnection._actionAUTHComplete (C:\Users\Sergey\Desktop\Project-Portf
olio\node_modules\nodemailer\lib\smtp-connection\index.js:1244:34)
at SMTPConnection._responseActions.push.str (C:\Users\Sergey\Desktop\Project
-Portfolio\node_modules\nodemailer\lib\smtp-connection\index.js:338:26)
at SMTPConnection._processResponse (C:\Users\Sergey\Desktop\Project-Portfoli
o\node_modules\nodemailer\lib\smtp-connection\index.js:702:20)
at SMTPConnection._onData (C:\Users\Sergey\Desktop\Project-Portfolio\node_mo
dules\nodemailer\lib\smtp-connection\index.js:507:14)
at TLSSocket._socket.on.chunk (C:\Users\Sergey\Desktop\Project-Portfolio\nod
e_modules\nodemailer\lib\smtp-connection\index.js:459:47)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
code: 'EAUTH',
response: '535-5.7.8 Username and Password not accepted. Learn more at\n535 5.
7.8 https://support.google.com/mail/?p=BadCredentials z13sm16002309wrw.19 - gsm
tp',
responseCode: 535,
command: 'AUTH PLAIN' }
Показываю свою реализацию отправки.
Файл config.json. Как я понимаю в поле user нужно указать реальный email, а в поле pass нужно указать пароль от этой почты. Вообщем это я и сделал. Здесь же я конечно заменил.
{
"upload": "public/upload",
"mail": {
"subject": "Сообщение с сайта",
"smtp": {
"host": "smtp.gmail.com",
"post": 465,
"secure": true,
"auth": {
"user": "user",
"pass": "pass"
}
}
}
}
Файл роута (смотрим на post запрос):
const express = require("express");
const router = express.Router();
const nodemailer = require("nodemailer");
const config = require("../config.json");
router.get("/", (req, res) => {
let obj = {
title: "Mail"
};
res.render("./pages/works", obj);
});
//===== отправка письма на почту =====
router.post("/", (req, res) => {
//требуем наличия имени, обратной почты и текста
if(!req.body.name || !req.body.email || !req.body.text) {
//если что-либо не указано - сообщить об этом
return res.json({status: "Укажите данные!"});
}
// инициализирум модуль для отправки писем и указываем данные из конфига
let transporter = nodemailer.createTransport(config.mail.smtp);
let mailOptions = {
from: `"${req.body.name}" <${req.body.email}>`,
to: config.mail.smtp.auth.user,
subject: config.mail.subject,
text: req.body.text.trim().slice(0, 500) + `\n Отправлено с: <${req.body.email}>`
};
//отправляем почту
transporter.sendMail(mailOptions, (error, info) => {
//если есть ошибки при отправке - сообщаем об этом
if (error) {
console.log(error);
return res.json({status: "При отправке письма произошла ошибка"});
}
res.json({status: "Письмо успешно отправлено"});
})
});
module.exports = router;
Вообщем очень нужна помощь в решении этой проблемы. Заранее спасибо!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем доброго времени сутокНеобходимо установить html страницу на просмотр, без редактирования
Имеется следующая DOM-структура: modalDiv (модальное окно) -> ui-grid -> ui-selectВ модальном окне находится грид, в колонке которого располагается ui-select