Я пытаюсь использовать Nodemailer для отправки электронной почты из моего приложения Angular с использованием Node.js
Я могу собирать данные из приложения Angular и передавать их на сервер, но когда я пытаюсь отправить данные с помощью Nodemailer, в консоль регистрируется следующая ошибка:
SENDING ERROR MESSAGE: connect ETIMEDOUT
UnhandledPromiseRejectionWarning: ReferenceError: info is not defined
Код здесь не работает:
let info = await transporter.sendMail(mailOptions);
А вот и мой полный app.js код:
const express = require("express");
const app = express();
const bodyParser = require("body-parser");
var nodemailer = require("nodemailer");
app.get("/", (req, res) => {
res.send("Welcome to Node API");
});
app.get("/getData", (req, res) => {
res.json({ message: "Hello World" });
});
app.post("/postData", bodyParser.json(), async (req, res) => {
const output = `
<p>You have a new contact request</p>
<h3>Contact Details</h3>
<ul>
<li>Name: ${req.body.name}</li>
<li>Company: ${req.body.message}</li>
</ul>
`;
console.log("EMAIL DETAILS: " + output);
try {
var transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "myaddress@mail.com",
pass: "myPassword"
},
tls: {
rejectUnauthorized: false
}
});
} catch (err) {
console.log("TRANSPORTER ERROR MESSAGE: " + err.message);
}
const mailOptions = {
from: "myaddress@mail.com", // sender address
to: "myaddress@mail.com", // list of receivers
subject: "Test email", // Subject line
html: output // plain text body
};
try {
let info = await transporter.sendMail(mailOptions);
} catch (err1) {
console.log("SENDING ERROR MESSAGE: " + err1.message);
}
console.log("Message sent: %s", info.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
});
app.listen(3000, () => console.log("Example app listening on port 3000!"));
Может кто-нибудь дать мне несколько советов о том, почему это не удается?
Кроме того, я пробовал другие типы адресов электронной почты (hotmail и т. Д.), Но все они выдают мне ту же ошибку.