Функции Firebase: Как проверить STARTTLS с Nodemailer? - PullRequest
0 голосов
/ 17 апреля 2019

Мы создаем систему доставки почты для определенного случая, и нам нужно использовать 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 , и все выглядит зеленым (допустимо a.k.a). Хотя в одной из наших учетных записей почта переходит в спам. Кроме того, после проверки конфигурации безопасности из самой почты из Gmail сообщается, что используется TLS. Из документации Я прочитал на эту ссылку , в явном виде сказано следующее:

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 для доставки этих писем, поскольку сервер настроен таким образом.

Как мы можем на самом деле проверить правильность конфигурации? Спасибо за вашу помощь.

...