Nodemailer不发送电子邮件

Posted

技术标签:

【中文标题】Nodemailer不发送电子邮件【英文标题】:Nodemailer not sending email 【发布时间】:2021-05-30 19:41:52 【问题描述】:

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

http://ethereal.email/

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

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

【讨论】:

以上是关于Nodemailer不发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

让 nodemailer 使用不同的 gmail 帐户发送电子邮件

从服务器从 nodemailer 发送电子邮件时出错

工具Node.js邮件发送组件- Nodemailer 1.0发布

Node.js使用Nodemailer发送邮件

发送电子邮件后Nodemailer非常慢

使用nodemailer发送邮件