Firebase功能:如何使用Nodemailer验证STARTTLS?

时间:2019-04-17 13:09:08

标签: node.js email google-cloud-functions nodemailer starttls

在特定情况下,我们正在创建一个邮件传递系统,我们需要使用STARTTLS才能使用nodemailer传递邮件。

我们已经创建了如下的nodemailer邮件传输器:

var mailer = require("nodemailer");

var smtpTransport = mailer.createTransport(
{
    host: 'smtp.example.com',
    port: 587,
    secure: false, // true for 465, false for other ports
    requireTLS: true,
    auth: 
    {
        user: "example@example.com",
        pass: "example"
    }
});

使用此配置,可以发送和发送邮件。我们甚至使用mxtoolbox检查邮件的状态,所有内容看上去都是绿色的(也就是有效的)。不过,在我们的其中一个帐户上,该邮件进入了垃圾邮件。。此外,在从Gmail本身检查邮件本身的安全性配置后,它表示已使用 TLS。我在this link上阅读的文档明确指出以下内容:

  

requireTLS 强制客户端使用STARTTLS。如果无法升级连接或失败,则返回错误。

我们正在从服务器收到成功的响应,但是,与此代码块一起传输的邮件仅通过一个帐户进入了垃圾邮件,但是我们不能忽略它,因为它可能会发生多次,而我们不了解。有趣的部分从这里开始。

当我们将此代码块更改为以下代码时:

var smtpTransport = mailer.createTransport(
{
    host: 'smtp.example.com',
    port: 465,
    secure: true, // true for 465, false for other ports
    auth: 
    {
        user: "example@example.com",
        pass: "example"
    }
});

邮件将直接发送到收件箱,包括使用STARTTLS拒绝邮件的帐户。。但是,由于服务器是按照这种方式配置的,因此我们需要使用STARTTLS来传递这些邮件。

我们如何才能实际验证配置正确?谢谢您的帮助。

0 个答案:

没有答案