我想使用mailchimp或mailgun或任何电子邮件传递服务器向客户端发送自动电子邮件,例如订单摘要,登录电子邮件,确认电子邮件,更改密码电子邮件等,因为当我使用nodemailer时,客户端正在垃圾邮件收件箱中接收电子邮件,有时甚至根本没有收到。
这是我使用的代码:
automated_emails.js文件:
const nodemailer = require('nodemailer');
const ejs = require('ejs');
const user = 'xxx'
const pass = 'xxx';
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: { user, pass }
});
const emailPasswordChange = (email, uuid) => {
ejs.renderFile("./mail/forgot-password.ejs", { uuid }, (err, data) => {
if (err) return console.log(err)
let mailOptions = {
from: 'xxx',
to: email,
subject: "Forgot My Password",
html: data
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) return console.log(error);
});
})
}
module.exports.emailPasswordChange = emailPasswordChange;
EJS文件是包含模板的文件,我将诸如电子邮件,名称等的用户信息传递给它。
它们是我在index.js主文件中调用的一堆函数。
您如何建议我执行此操作?有没有办法将mailchimp / mailgun / etc的电子邮件传递方法放入我的nodemailer应用程序中?
答案 0 :(得分:0)
为防止将电子邮件移至垃圾邮件文件夹,请确保(从)发送电子邮件与nodemailer使用的userEmail帐户相同。
我正在使用gmail帐户通过“ nodemailer”发送电子邮件,并且总是成功,这是我使用的代码:
const nodemailer = require('nodemailer');
var userEmail = 'yourUserName@gmail.com';
var userPassword = 'yourPassword';
var transporter = nodemailer.createTransport(`smtps://${userEmail}:${userPassword}@smtp.gmail.com`);
// setup e-mail data with unicode symbols
var mailOptions = {
from: userEmail, // sender address
to: 'abc1@hotmail.com, abc2@yahoo.com', // list of receivers
subject: 'Demo-1', // Subject line
text: 'Hello world from Node.js', // plaintext body
html: '<b>Hello world from Node.js</b>' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});