下面是我的代码。 gmail smtp服务器可以正常工作。 但是当我使用办公室(不需要身份验证)时,它会失败
可能是我使用的语法错误。
下面是使用gmail smtp的代码:
var transport = nodemailer.createTransport(“ smtps://xxxx@gmail.com:” + encodeURIComponent('abcd')+“ @ smtp.gmail.com:465”);
var mailOptions = {
from: 'xxxx@abcd.com',
to: 'xxxxyy@abcd.com',
subject: 'hello world!',
html: '<img src="cid:logo">',
attachments: [{
filename: 'test.png',
path: 'D:/bbbbb/mmmm/src/test.png',
cid: 'logo' //same cid value as in the html img src
}]
};
transport.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
}
console.log(`Message sent: ${info.response}`);
});
由于我们的公司 smtp 不需要身份验证, 我已经尝试过以下代码:
var transport = nodemailer.createTransport("smtps://xxxx@abcd.com:"+encodeURIComponent('') + "@xxxx.xxxrxx.com:25");
OR
var transport = nodemailer.createTransport("smtps://xxx.xxx.com:25");
但所有导致的错误
{ Error: 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:797:
at Error (native) code: 'ECONNECTION', command: 'CONN' }
我的猜测是语法错误。 有人可以纠正我吗
感谢和问候。
答案 0 :(得分:1)
创建auth消息时,可以从示例代码中删除SMTP Transport选项。
因此它应该如下所示:
/**
* Initialize transport object
*/
const transporter = nodemailer.createTransport({
host: "", //Host
port: , // Port
secure: true
});
let mailOptions = {
from: , // sender address
to: , // list of receivers
subject: , // Subject line
text: , // plain text body
html: // html body
};
/**
* send mail with defined transport object
*/
transporter.sendMail(mailOptions,
(error, info) => {
});