这种电子邮件配置安全吗?

这种电子邮件配置安全吗?

我正在使用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 `<[email protected]>`
        (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,可能我不明白这里的某些事情。

答案1

邮件传递由 SMTP 协议完成。这是一种逐跳协议,这意味着跳数(即邮件服务器)之间的连接最多是加密的,并且中间的每个邮件服务器都可以读取(和更改)邮件。您在特定的 Received 标头中看到的是从您公司的邮件服务器到 Google 邮件服务器的连接信息,该连接看起来是加密的。但是在您的代码中,您配置了客户端和本地邮件服务器之间的连接,而本地邮件服务器可能不支持加密。

相关内容