【发布时间】:2018-10-28 14:20:36
【问题描述】:
如何加密使用 SMTP 发送的电子邮件?我对这个 SMTP 有点陌生,对 电子邮件加密 和 SMTP 服务器身份验证 有点困惑。
我真的找不到一个示例,其中 SMTP 邮件以加密格式(使用 tls/ssl)发送而无需任何身份验证。
我的情况是,我有一个 SMTP 服务器(不需要任何身份验证)。我必须以加密格式发送电子邮件。
那么,真的不能在没有任何服务器身份验证的情况下发送电子邮件吗?请在这里清除我。
以下是我的参考代码,当security设置为true时不起作用。
let transporter = nodemailer.createTransport({
host: prop.mailHost,
port: prop.mailPort,
secure: true //encrytpion enabled. And no authentication provided
});
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
return console.log(error);
}
console.log("successfully sent mail");
}
我在这里遗漏了什么吗? Nodemailer 是这里使用的 node js 包。只要支持邮件加密和添加附件,我可以随意切换到其他一些节点 js 包。
【问题讨论】:
-
我怀疑您误解了 SSL 上下文中的身份验证。 SSL/TLS 客户端总是在发送数据之前对 SSL 服务器进行身份验证。客户端必须配置一个证书颁发机构 (CA) 证书列表,该证书涵盖客户端可能连接到的所有可能的服务器。我不知道 nodemailer 是如何做到这一点的,你必须检查文档。您说“它不起作用”,但不知道它是如何失败的。
标签: node.js email encryption smtp nodemailer