Node.js NodeEmailer-无法获取本地颁发者证书
我正在尝试使用以下配置的NodeEmailer发送电子邮件:Node.js NodeEmailer-无法获取本地颁发者证书,node.js,email,security,firewall,nodemailer,Node.js,Email,Security,Firewall,Nodemailer,我正在尝试使用以下配置的NodeEmailer发送电子邮件: var transporter = nodemailer.createTransport(smtpTransport({ host: 'smtp.outlookhost', port: 25, auth: { user: '', pass: '' }, secure:false,
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
也许这会对您有所帮助:
我会使用第二种方法,因为它更容易=D
var transport = nodemailer.createTransport("SMTP", {
service: "hotmail",
auth: {
user: "user@outlook.com",
pass: "password"
}
});
回答晚了,但这对我使用当前版本的NodeEmailer和outlook主机有效。在我的情况下,NodeEmailer找不到我们的公司CA证书。所以我设置了ca选项,它解决了这个问题。CA证书采用PEM格式,以
----开始证书------
开头,以----结束证书------
结尾
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')) ],
},
});
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')) ],
},
});