我正在尝试使用Nodemailer发送包含以下配置的电子邮件:
var transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.outlookhost',
port: 25,
auth: {
user: '',
pass: ''
},
secure:false,
logger: true,
debug: true
}));
我收到此错误:
Error: unable to get local issuer certificate
我正在使用outlook发送电子邮件。我如何提供证书。
修改了配置:
var transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.outlookhost',
port: 25,
auth: {
user: '',
pass: ''
},
secure:true,
logger: true,
debug: true,
tls: {
// do not fail on invalid certs
rejectUnauthorized: false
}
}));
错误:
Error: 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c
答案 0 :(得分:1)
也许这可能会对你有所帮助:
Not able to connect to outlook.com SMTP using Nodemailer
我会使用第二种方法,因为它更容易! = D
var transport = nodemailer.createTransport("SMTP", {
service: "hotmail",
auth: {
user: "user@outlook.com",
pass: "password"
}
});
答案 1 :(得分:1)
const transporter = nodemailer.createTransport({
host: "smtp.outlookhost",
port: 25,
secure: false,
tls: {rejectUnauthorized: false}
});
最新答案,但这对于使用当前版本的nodemailer和Outlook主机的我来说是有效的。
答案 2 :(得分:0)
就我而言,nodemailer 找不到我们的公司 CA 证书。所以我设置了 ca 选项,它解决了这个问题。 CA 证书采用 PEM 格式,以 -----BEGIN CERTIFICATE-----
开头,以 -----END CERTIFICATE-----
结尾。
const fs = require('fs');
const path = require('path');
const transporter = nodemailer.createTransport({
host: 'smtp-server',
port: 25,
tls: {
ca: [ fs.readFileSync(path.resolve(__dirname, 'ca.pem')) ],
},
});