如何在nodejs上设置SMTP服务器

我一直在尝试设置一个简单的表单,在提交时会向用户发送电子邮件。 我一直在使用nodejs并安装了nodemailer以帮助我。 我正在使用gmail作为SMTP服务器,并遇到了一些问题。 这是html:

 Schedule an Appointment - Name        

  

Schedule an Appointment

First Name:

Last Name:

Email:

Phone Number:

和脚本:

 $(document).ready(function(){ var from,to,subject,text; $("#send_email").click(function(){ to=$("#email").val(); firstname=$("#firstname").val(); lastname=$("#lastname").val(); $("#message").text("Sending E-mail...Please wait"); $.get("http://localhost:4000/send",{to:to,subject:firstname,text:lastname},function(data){ if(data=="sent"){ $("#message").empty().html(" Email is been sent at " + to + " . Please check inbox !"); } }); }); 

首先,您需要在Gmail 中启用安全性 较低的应用程序 如何在Google中启用安全性较低的应用程序

然后安装node-mailer

npm i nodemailer

将此函数粘贴到您的代码中

  var nodemailer = require('nodemailer'); // create reusable transporter object using the default SMTP transport var transporter = nodemailer.createTransport('smtps://yourmail%40gmail.com:yourpass@smtp.gmail.com'); // setup e-mail data with unicode symbols function sendmail(to,subject,text,html,info) { var mailOptions = { from: '"Testing Mail" ', // sender address to: to, // list of receivers subject: subject, // Subject line text: text, // plaintext body html: html // html body }; transporter.sendMail(mailOptions, function(error, infoo){ var res={ responsecode:'' } if(error){ res.responsecode=401; return info(new Error(res.responsecode),null); } res.responsecode=200; info(null,res.responsecode+infoo.response); });} 

现在调用该函数

 app.get('/send',function (req,res) { //pass value from your html form here sendmail('to', 'subject', 'body', '

its Html

', function (err, info) { if (err) { console.log("Error is " + err) return } console.log("Email sent. " + info) })})