Nodemailer不发送电子邮件

时间:2021-05-30 19:41:52

标签: javascript node.js nodemailer

我刚刚使用联系表格设置了我的故障项目,我试图让它在有人填写表格时向我发送电子邮件。我遇到的问题是服务器登录控制台,消息已发送且没有错误,但我从未收到电子邮件。您可以在 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));
});

1 个答案:

答案 0 :(得分:0)

http://ethereal.email/

<块引用>

Ethereal 是一个伪造的 SMTP 服务,主要针对 Nodemailer 用户(但不限于)。这是一个完全免费的反交易电子邮件服务邮件永远不会被传递。
相反,您可以直接从 Nodemailer 生成一个虚拟电子邮件帐户,使用该帐户发送电子邮件,就像使用任何其他 SMTP 提供商一样,最后在此处预览已发送的邮件,因为实际上没有发送电子邮件。< /p>

即使没有,the server logs in console that the message has been sent with no errors 您得到的消息是 SMTP 服务器成功接受了您的邮件并将其添加到发送队列中,但这并不能保证它会被投递。接收 SMTP 服务器仍然可以拒绝它并发回退回邮件。