繁体   English   中英

如何使用 smtp 节点邮件程序发送电子邮件

[英]How to send emails using smtp node mailer

我试图在节点邮件程序上使用 SMTP 发送测试 email 但它说连接超时。 我使用的代码片段在下面。

const nodemailer = require("nodemailer");

async function main() {

  const nodemailer = require('nodemailer');
  let transporter = nodemailer.createTransport({
        pool:true,
         host: '213.55.96.132',
         port: 25,
         auth: {
             user: "user@ethionet.et",
             pass: "drafgthsjaid321##"
         },
         pool: true,
         logger :true,
         debug:true,
         secure: false,
 })
  transporter.verify(function(error, success) {
    if (error) {
         console.log(error);
    } else {
         console.log('Server is ready to take our messages');
    }
 });
 let mailOptions = {
    from: "user@ethionet.et",
    to: ["someemail@gmail.com",],
    subject: 'Test email',
    text: `Hello world`
  };
  transporter.sendMail(mailOptions, function(err, data) {
if (err) {
    console.log("Error " + err);
} else {
    console.log("Email sent successfully");
}
  });

}


main().catch(console.error);

我不介意泄露凭据,当我尝试从这里通过 SMTP 发送电子邮件时它可以工作。 为什么会失败?

您需要阅读比文档的第一页多一点的内容:)

创建您的消息

let message = {
    ...,
    from: 'mailer@nodemailer.com', // listed in rfc822 message header
    to: 'daemon@nodemailer.com', // listed in rfc822 message header
    envelope: {
        from: 'Daemon <deamon@nodemailer.com>', // used as MAIL FROM: address for SMTP
        to: 'mailer@nodemailer.com, Mailer <mailer2@nodemailer.com>' // used as RCPT TO: address for SMTP
    }
}

通过传输器发送消息

transporter.sendMail(...).then(info=>{
    console.log('Preview URL: ' + nodemailer.getTestMessageUrl(info));
});

原来问题是我的 ISP 阻止了端口 25。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM