我刚刚使用联系表格设置了我的故障项目,我试图让它在有人填写表格时向我发送电子邮件。我遇到的问题是服务器登录控制台,消息已发送且没有错误,但我从未收到电子邮件。您可以在 https://glitch.com/edit/#!/gamesalt-dev?path=packages%2FPOSTroutes.js%3A2%3A39 处找到代码,在 https://gamesalt-dev.glitch.me/ 处可以找到联系表格。
let account = {
user: "some.name@ethereal.email",
pass: "************"
}
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
port: 587,
secure: false,
auth: {
user: account.user,
pass: account.pass,
},
});
let mailOptions = {
from: `"Contact" <${account.user}>`,
to: "some.name@example.com",
subject: "New Contact!",
text: "Hello world",
html: "<b>Hello world</b>",
}
let info = await transporter.sendMail(mailOptions, (error, info) => {
if(error) return console.log(error);
console.log("Message sent: %s", info.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
});
答案 0 :(得分:0)
Ethereal 是一个伪造的 SMTP 服务,主要针对 Nodemailer 用户(但不限于)。这是一个完全免费的反交易电子邮件服务邮件永远不会被传递。
相反,您可以直接从 Nodemailer 生成一个虚拟电子邮件帐户,使用该帐户发送电子邮件,就像使用任何其他 SMTP 提供商一样,最后在此处预览已发送的邮件,因为实际上没有发送电子邮件。< /p>
即使没有,the server logs in console that the message has been sent with no errors
您得到的消息是 SMTP 服务器成功接受了您的邮件并将其添加到发送队列中,但这并不能保证它会被投递。接收 SMTP 服务器仍然可以拒绝它并发回退回邮件。