Я использую nodemailer
пакет с node.js
для отправки писем, и я не уверен в безопасности. Полученный мной хост работает только с этой конфигурацией (также с портом 587):
const transporter = nodemailer.createTransport({
host: 'some.host.address.org',
port: 25,
requireTLS: false,
secure: false,
})
Для этой конфигурации:
requireTLS: true,
secure: false,
Я получаю сообщение об ошибке: Error upgrading connection with STARTTLS: 500 5.3.3 Unrecognized command
Для этой конфигурации:
port: 465,
secure: true,
У меня другая ошибка error: 4605283776:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332:
Итак, я предполагаю, что мой хост не поддерживает STARTTLS или TLS. Но когда я проверяю эти письма в клиенте, я вижу в заголовках сообщений следующую информацию:
Received: from mycompany.domain (mycompany.domain.com. [*some IP address*])
by mx.google.com with ESMTPS id sxxxxxxxios.xx.2020.04.20.xx.xx.xx
for `<id@some.host.address.org>`
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
Mon, 20 Apr 2020 09:26:18 -0700 (PDT)
Received-SPF: pass (google.com: domain some.host.address.org configured xxx.xxx.xx.xxx as internal address)
Поэтому я не уверен, отправляются ли мои письма с шифрованием или нет, безопасно ли это соединение nodemailer и как возможно, что я могу видеть TLS в заголовке сообщения, возможно, я не понимаю, что здесь.
Доставка почты осуществляется по протоколу SMTP. Это пошаговый протокол, который означает, что соединения между переходами (то есть почтовыми серверами) не более зашифрованы, и что каждый почтовый сервер между ними может читать (и изменять) почту. В конкретном заголовке Received вы видите информацию о подключении почтового сервера вашей компании к почтовому серверу Google, которое выглядит зашифрованным. Но в вашем коде вы настраиваете соединение между вашим клиентом и локальным почтовым сервером, который может не поддерживать шифрование.