Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在express/node.js应用程序中使用mailgun/mailchimp/etc发送电子邮件_Node.js_Express_Nodemailer - Fatal编程技术网

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

如何在express/node.js应用程序中使用mailgun/mailchimp/etc发送电子邮件,node.js,express,nodemailer,Node.js,Express,Nodemailer,我想向使用mailchimp或mailgun或任何电子邮件传递服务器的客户发送自动电子邮件,如订单摘要、登录电子邮件、确认电子邮件、更改密码电子邮件等,因为当我使用NodeEmailer时,客户机在其垃圾邮件收件箱中接收电子邮件,有时根本没有接收到任何电子邮件。 以下是我使用的代码: automated_emails.js文件: const nodemailer = require('nodemailer'); const ejs = require('ejs'); const user =

我想向使用mailchimp或mailgun或任何电子邮件传递服务器的客户发送自动电子邮件,如订单摘要、登录电子邮件、确认电子邮件、更改密码电子邮件等,因为当我使用NodeEmailer时,客户机在其垃圾邮件收件箱中接收电子邮件,有时根本没有接收到任何电子邮件。
以下是我使用的代码:

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的电子邮件发送方法放入我的NodeEmailer应用程序中?

为了防止将您的电子邮件移动到垃圾邮件文件夹,请确保发送电子邮件(发件人)与NodeEmailer使用的用户电子邮件帐户相同

我正在使用gmail帐户使用“nodeEmailer”发送电子邮件,而且总是成功的,下面是我使用的代码:

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);
});
const nodemailer=require('nodemailer');
var userEmail=yourUserName@gmail.com';
var userPassword='yourPassword';
var transporter=nodemailer.createTransport(`smtps://${userEmail}:${userPassword}@smtp.gmail.com`);
//使用unicode符号设置电子邮件数据
var mailpoptions={
发件人:userEmail,//发件人地址
致:'abc1@hotmail.com, abc2@yahoo.com“,//接收者列表
主题:“演示-1”,//主题行
text:'Hello world from Node.js',//纯文本正文
html:'helloworld from Node.js'//html body
};
//使用定义的传输对象发送邮件
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
返回console.log(错误);
}
console.log('发送的消息:'+信息响应);
});

放入垃圾邮件框的电子邮件与NodeEmailer没有直接关系,而是与您的电子邮件、域名和电子邮件重定向器的声誉有关。正确配置是模块工作的最低要求。我在sendgrid和sparkpost的垃圾邮件箱中遇到了电子邮件问题。在我开始使用AWS SES后,我的问题就解决了。这是我正在使用的表单:
公司名称
我注意到一些像outlook这样的电子邮件应用程序会对来自电子邮件域的电子邮件发送垃圾邮件,这与发件人域不同,因此,如果您与'nodeEmailer'一起使用的userEmail域不相同,例如'domain.com',那么我认为您将面临垃圾邮件问题。我明白了,使用
smtps://${userEmail}:${userPassword}@smtp.gmail.com
是否有任何效果?我用了NodeEmailer docs建议的任何方法