下面是我的代码。这适用于 gmail smtp 服务器。 但是当我使用我的办公室(不需要身份验证)时,它失败了
可能是我使用的语法有误。
下面是使用 gmail smtp 的代码:
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");
或
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' }
我的猜测是语法错误。 有人可以纠正我吗
感谢和问候。
最佳答案
您可以删除 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) => {
});
关于javascript - 使用 nodemailer 和 smtp 无需身份验证发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161845/