通过 Mandrill NodeJS API 发送时我没有收到电子邮件

Posted

技术标签:

【中文标题】通过 Mandrill NodeJS API 发送时我没有收到电子邮件【英文标题】:I don't get emails when sending by Mandrill NodeJS API 【发布时间】:2015-01-18 22:27:10 【问题描述】:

我在下面有这个功能,它允许我使用 mandrill nodeJS API 发送邮件:

var mandrill = require('mandrill-api/mandrill');
var mandrill_client = new mandrill.Mandrill(config.values.mandrill_api_key);
exports.sendMail = function(htmlContent, textContent, subject, from_email, from_name, to_email, to_name ,reply_to_email, callback) 
    var message = 
        "html": htmlContent,
        "text": textContent,
        "subject": subject,
        "from_email": from_email,
        "from_name": from_name,
        "to": [
            "email": to_email,
            "name": to_name,
            "type": "to"
        ],
        "headers": 
            "Reply-To": reply_to_email
        ,
        "important": false
    ;

    var async = false;

    mandrill_client.messages.send("message": message, "async": async, function(result) 
        console.log(result);

        callback(result);

    , function(e) 
        console.log('A mandrill error occurred: ' + e.name + ' - ' + e.message);
    );

;

在 mandrill 控制台 (https://mandrillapp.com/activity) 上,我可以看到电子邮件已成功发送(状态:已发送)。

但是我的 gmail 邮箱和 hotmail 邮箱都没有。

如何解决这个问题?

谢谢,

【问题讨论】:

做一个反向 dns 查找,也许你被阻止了,还尝试将服务器 ip 添加到 smtp 发件人的白名单中,我认为这个问题根本不应该与你的代码有关。 【参考方案1】:

请确定,您没有使用测试 API 密钥。

您可以使用测试密钥来试验 Mandrill 的 API。没有实际发送邮件,但 webhook 正常触发,您可以生成综合退回邮件和投诉,而不会影响您的声誉。

【讨论】:

【参考方案2】:

问题解决了。

我必须在我的 DNS 区域中添加特殊字段:DKIM 和 SPF

http://help.mandrill.com/entries/22030056-how-do-i-add-dns-records-for-my-sending-domains

【讨论】:

以上是关于通过 Mandrill NodeJS API 发送时我没有收到电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 和 Mandrill api,无法发送电子邮件

发送请求的 Mandrill API 错误

您将如何使用 phantomjs 通过 mandrill 发送邮件?

如何获取使用 Mandrill API 发送的最后一封电子邮件

使用 Mandrill api 更改格式发送邮件

强制 mandrill API 发送邮件,而不是 django 与 smtp