Я пытаюсь использовать nodemailer для отправки электронной почты, но он не отправляет электронную почту, и странно то, что он также не регистрирует никаких ошибок.
Вот код моего маршрута:
router.post("/form", async (req, res) => {
try {
let { name, email, password } = req.body;
let user = await User.create({
name,
email,
password,
});
if (!user) return res.status(501).send("Something went wrong");
let token = await user.getSignedToken();
try {
user.emailToken = await user.verifyEmail();
} catch (ex) {
console.log(ex);
}
try {
await user.save({ validateBeforeSave: false });
} catch (ex) {
console.log(ex);
}
const options = {
expires: new Date(
Date.now() + process.env.JWT_COOKIE_EXPIRE * 24 * 60 * 60 * 1000
),
};
var smtpTransport = nodemailer.createTransport({
service: "Gmail",
auth: {
user: "myEmail",
pass: "myPass",
},
});
var mailOptions = {
from: "myEmail",
to: req.body.email,
subject: "Verify Email Token",
text: `go to the below link\nhttp://localhost:3000/verifyEmail/${emailToken}`,
};
smtpTransport.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log("Email sent: " + info.response);
}
});
res.cookie("token", token, options);
res.send("Check email for activation");
} catch (ex) {
res.send(ex);
}
});
Итак, он не отправляет никаких электронных писем, и после этого res.cook ie и строка res.send также не работают. Но сервер не регистрирует никаких ошибок / исключений. Итак, в чем может быть проблема? Я использовал nodemailer в другом маршруте (с той же учетной записью gmail, что и этот), и он работал. Итак, в чем может быть проблема, что код здесь не работает?