验证电子邮件是否成功发送 nodemailer (sails.js)

Ahs*_*ain 8 javascript email-client nodemailer sails.js

我正在使用nodemailer模块在我的 Sails.js 项目中发送电子邮件。现在我想知道是否有一种方法可以知道电子邮件是否已成功发送,或者电子邮件是否因某些附件而失败或可能是错误的电子邮件地址。

我如何确保电子邮件地址有效?或者电子邮件是否成功发送到相关电子邮件地址?

我已经阅读了 nodemailer 文档并对其进行了一些研发,但到目前为止我找不到任何有成效的东西。

请让我知道是否有办法确认电子邮件。

谢谢。

Eug*_*kov 8

这很简单。sendMail有一个回调作为参数。您只需检查此回调中是否存在某些错误。

transport.sendMail({}, (error, result) => {
  if (error) return console.error(error);
  return console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

或者您可以使用sails-service-mailer包发送邮件 - https://github.com/ghaiklor/sails-service-mailer。然后你可以像这样写你的代码

SmtpMailer
  .send({})
  .then(console.log.bind(console))
  .catch(console.error.bind(console));
Run Code Online (Sandbox Code Playgroud)

如果你想检查池或其他东西,我想是不可能的。如果您将邮件发送到不存在的电子邮件地址,它会照常发送,只是收件人不会收到。无论如何,您可以检查邮件是否仅添加到池中。

UPD: transport也有一个 Promise API(参见https://nodemailer.com/usage/),所以不再需要像我这样的自定义包装器sails-service-mailer

  • 如果没有“err”,则仅表示邮件已发送。这并没有说明邮件是否**已送达**。 (2认同)