如何在express / node.js应用程序中使用mailgun / mailchimp / etc发送电子邮件

时间:2018-08-04 20:17:12

标签: node.js express nodemailer

我想使用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应用程序中?

1 个答案:

答案 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);
});