nodemailer 不能在本地主机或云上工作?

nodemailer not working on either localhost or cloud?

我正在尝试使用 nodemailer 通过我的本地系统和 heroku 应用程序发送邮件,但在这两种情况下我都超时这里是我的代码,现在我已经尝试使用 gmail 和 smtp 电子邮件但是仍然没有任何效果

exports.sendMail=function(req,res)
 {
     if(req.METHOD=="POST")
     {
         var email=req.body.email;
         var name=req.body.name;
         var phone=req.body.phone;
        var content=`
          <ul>
         <p>You have New Enquiry</p>
         <h3>Contact Details</h3>
         <ul>
         <li>Email:email</li>
         <li>Name:name</li>
         <li>Phone:phone</li>
         </ul>
        `;
        let transporter=nodemailer.createTransport({
            host:'chi-node30.websitehostserver.net ',
            port:465,
            secure:true,
            auth:
            {
                user:'chiragunplugged@chiragunplugged.com',
                pass:'foo123'
            },
             tls:{
               rejectUnauthorized:false
               }


        });
        let mailOptions={
            from:'<chiragunplugged@chiragunplugged.com',
            to:'atul.11192@gmail.com',
            subject:'Enquiry from datadock',
            text:'you have got enquiry',
            html:content


        };
        transporter.sendMail(mailOptions,(err,info)=>{
            if(err){

                res.render('final.ejs',{message:err});
                return console.log(err);

            }
            var success="message sent";
            res.render('final.ejs',{message:success});
        });

     }
 }; 

请检查代码,让我知道我可以做哪些更改才能使其正常工作。

您可能实际上 运行 Heroku 或本地主机上的 SMTP 服务器,nodemailer 不会为您做这件事。您可以使用 google 的免费 smtp 服务器,详见此处 https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server 这将传输您的邮件。

let transporter = nodemailer.createTransport({
        host: 'smtp.gmail.com',
        port: 465,
        secure: true, // true for 465, false for other ports
        auth: {
            user: account.user, // generated ethereal user
            pass: account.pass // generated ethereal password
        }
    });

将您的传输器更改为上述内容并提供 gmail 登录详细信息,然后如果您在邮件选项中有相同的详细信息,它将按照选项中的描述从 chiragunplugged@chiragunplugged.com 中显示。

在本地主机上它不起作用,因为发送电子邮件需要安全可靠的连接,但使用 gmail[smtp(简单邮件传输协议)] 我们可以实现它的功能。

别忘了先进行设置 - Allow less secure apps to access account.

已获得访问 gmail 帐户的权限。

默认情况下,此设置处于关闭状态,您只需将其打开。现在继续编码部分。

/////////////////////--------------------- --------------------------------------///////// //////////////////////////

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false,
requireTLS: true,
auth: {
    user: 'your.gmail.account@gmail.com', // like : abc@gmail.com
    pass: 'your.gmailpassword'           // like : pass@123
}
});

let mailOptions = {
 from: 'your.gmail.account@gmail.com',
 to: 'receivers.email@domain.com',
 subject: 'Check Mail',
 text: 'Its working node mailer'
};

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
     return console.log(error.message);
  }
console.log('success');
});