当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 带有nodemailer的电子邮件在Heroku上失败

来源:互联网 收集:自由互联 发布时间:2021-06-16
在我的node.js-App中,运行在1个Heroku工作者上,需要不时发送电子邮件.逻辑如下: var transporter = Email.createTransport({ service: 'yahoo', auth: { user: process.env.CRAWLER_MAIL, pass: process.env.CRAWLER_PWD }});tra
在我的node.js-App中,运行在1个Heroku工作者上,需要不时发送电子邮件.逻辑如下:

var transporter = Email.createTransport({
    service: 'yahoo',
    auth: {
        user: process.env.CRAWLER_MAIL,
        pass: process.env.CRAWLER_PWD
    }
});
transporter.sendMail({
                            from: process.env.CRAWLER_MAIL,
                            to: process.env.CRAWLER_RCVR_MAIL,
                            subject: 'subject',
                            text: 'text'
                        }, function(err, result) {
                            if (err !== null) {
                                console.log(err);
                            } else {
                                ...
                            }
                        });

我用工头开始测试了这个并且工作正常.尽管如此,一旦部署到Heroku,传输器总是会发出错误状态代码为’564:我们无法传递您的消息.请尝试添加一些文字重新发送消息.

process.env.保持正确的值,我检查了,文本总是一个字符串.

可能有什么不对?

我无法使用我的帐户详细信息复制您的问题.

它可能与发件人/收件人的电子邮件有关吗?它们都是@ yahoo.com地址吗?
在论坛上有一些关于雅虎团体电子邮件的喋喋不休,特别是不能正常工作并发出错误.与雅虎最近改变其DMARC政策有关.

Nodemailer从子模块nodemailer-wellknown加载预定义的“众所周知的”服务

这是使用服务时加载的当前定义:createTransport()中的’yahoo’:
https://github.com/andris9/nodemailer-wellknown/blob/master/services.json#L160

一些值得尝试的事情:

>将smtp服务器切换到plus.smtp.mail.yahoo.com.
>尝试使用和不使用@ yahoo.com的用户名
>确保您从真实的电子邮件地址发送 – 而不是别名.

我们使用我们的Nodemailer应用程序在Heroku上使用Mandrill for SMTP.

非常可靠,每月发送的前12k封电子邮件是免费的!

网友评论