javascript - 使用 nodemailer 和 smtp 无需身份验证发送邮件

标签 javascript node.js nodemailer

下面是我的代码。这适用于 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/

相关文章:

c# - 根据下拉列表在 asp.net 中选择的选项从文件夹动态加载多个图像

java - gwt-exporter 不生成代码(Java 到 Javascript)

javascript - 如何使用nodeJS将脚本文件链接到html文件

javascript - iPad 上的两栏网页布局

javascript - ER_TRUNCATED_WRONG_VALUE : Incorrect datetime value

node.js - Zeit/Now 部署停止工作。没有显示错误

javascript - localhost 不输出我使用的路由器和 Controller 的 JSON

node.js - 错误: Invalid login: 535 Authentication failed: Bad username/password with node mailer

node.js - 当我尝试发送电子邮件时,ESOCKET 错误是什么意思?

smtp - 是否可以将 Sengrid 的替换标签与 nodemailer 一起使用?