Сервер node js для отправки email - ошибка при отправке сообщений: invalid login:535-5.7.8 Username and Password not accepted
Я создал сайт на html и js. В нём имеется поле для ввода email и кнопка для отправки. Ещё я создал сервер node.js, к-рый должен отправить сообщение на выбранный адрес. Но когда я ввожу свой email в браузере и жму на кнопку, вижу сообщение "ошибка при отправке сообщений: invalid login:535-5.7.8 Username and Password not accepted." Как быть?
const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(express.static('public'));
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'мой[email protected]',
pass: 'мой_пароль'
}
});
app.post('/send-email', (req, res) => {
const { email } = req.body;
const mailOptions = {
from: 'мой[email protected]',
to: email,
subject: 'Привет от моего сайта',
text: 'Привет, это мой сайт'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
res.status(500).send('Ошибка при отправке сообщения: ' + error.message);
} else {
res.send('Сообщение успешно отправлено');
}
});
});
app.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Пример формы</title>
</head>
<body>
<form id="contact-form">
<input type="email" id="email" placeholder="Введите ваш email" required>
<button type="submit" id="sm">Отправить</button>
</form>
<script>
document.getElementById('contact-form').addEventListener('submit', function(event) {
event.preventDefault();
var email = document.getElementById('email').value;
fetch('/send-email', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: email })
})
.then(response => response.text())
.then(data => alert(data))
.catch((error) => console.error('Ошибка:', error));
});
</script>
</body>
</html>
Ответы (1 шт):
Сейчас нельзя отправлять письма сторонними приложениями с аккаунтов mail.ru, yandex, gmail и т.д., используя основной пароль аккаунта. Надо создавать отдельные пароли для приложений. Инструкция для GMail:
Нужно включить двухфакторную аутентификацию в аккаунте, с которого вы собираетесь отправлять письма.
После этого, в Chrome нажимаем на “Manage your Accounts” →Безопасность. Ищем блок “Вход в аккаунт” и нажимаем на “Пароли приложений”.
Теперь этот пароль можно использовать для отправки почты с помощью скрипта на вашем любимом языке программирования.