Mandrill邮件未到达任何邮箱,但Mandrill显示状态为“已发送”

34

Mandrill不提供任何支持。我已经向他们发送了多个工单,但仍然没有回复。我希望有人能在这里帮助我。

我通过SMTP发送电子邮件。一开始我能够发送几千封电子邮件,但是在几千封之后,没有任何电子邮件到达收件箱。Mandrill的活动显示该电子邮件已经发送,但实际上它并没有被发送,也没有留存在后台中。我每小时的限制大约是50K。

我尝试在一天后创建另一个帐户,并进行了一些充值,但其他帐户也出现了同样的问题。SMTP客户端没有错误,日志中也没有错误,什么都没有。

另一个需要注意的事情是,当我将鼠标指针悬停在“已发送”上时,它会显示“没有SMTP事件”,但实际上已经成功发送的电子邮件则会显示一些统计信息。


你有检查过API日志吗?这些日志显示了最近100次失败的API调用和最近100次成功的API调用,对于故障排除非常有用。通过SMTP发送的内容也会在这里记录! - Simon Hampel
3
我们也遇到了同样的问题。我们看到"已发送(Delivered)"和"无SMTP事件(No SMTP event)"。Mandril日志看起来没问题。API日志中最后一次失败是相当久以前,它显示了一个典型的响应但没有拒绝原因。 - Ally
2
同样的问题现在也发生在我身上。20分钟没有Gmail。没有SMTP事件。Yahoo和Hotmail是即时的。 - Furkan Gözükara
对我来说,使用SMTP没有抛出错误,但他们自己没有收到电子邮件,更不用说将其发送到Gmail了。 - Saeed Neamati
5个回答

25

UI中的Mandrill送达状态并不意味着邮件已经发送成功,而只是表示Mandrill已经接收到该消息以进行处理。这显然非常令人困惑。

唯一确定电子邮件是否已发送(即成功传递到接收邮件服务器)的方法是查看消息是否具有smtp事件。请注意,在GUI / API中获得SMTP事件之前可能需要一些时间(我曾经遇到过2分钟到24小时的延迟)。

要查看所有当前未确认交付的电子邮件,请在搜索框中搜索“NOT smtp_events.diag:250”。


在我的情况下,我看到电子邮件出现在“NOT smtp_events.diag:250”查询中,但仍然被传送。你知道为什么吗? - Rahul Dess

4

经过一些研究,我发现如果使用测试API密钥发送电子邮件,则实际上不会向收件箱发送任何邮件,但是Webhook会正常触发,并且在Mandrill UI上显示为已传递状态。为了检查电子邮件的实际传递情况,请尝试使用非测试账户的其他API密钥


3

原来邮件被邮件服务器(Gmail)延迟接收了。看起来它们被接受了但是几个小时没有处理。


2
我遇到了同样的问题,OakHosting_James提供的解释对我帮助很大,让我理解了发生了什么事情:

原来消息是从被列入RBL的IP发送的(这种情况经常发生)。因此,在SMTP时间接收服务器拒绝了该消息。

他们回复说有两件事:

(i) 任何人都可以设置黑名单,并出于没有好处的原因将任何IP放在上面。 (ii) 有些消息以一种使Mandrill无法检测到其已反弹的方式反弹 - 这就是为什么他们的网站显示“已交付”的原因。

我们先来看看这些问题:

(i) 这是真的,但这是UCEPROTECT-Level 1。与其共事并不愉快,但它们不是某个想要报复的人的后院项目。我仍然知道根本不可能让任何发件网络保持100%清洁。我不是因为其中一个IP暂时被列入黑名单而感到沮丧。但是我确实感到受愚弄,因为被告知那里有一些微小的黑名单,没有正常人会使用它们。 UCEPROTECT不是其中之一,他们应该坦白:“即使拥有最佳的垃圾邮件保护,我们偶尔也会被列入黑名单;我们非常快地检测到这一点并切换到其他IP。”

(ii) 我相信Mandrill系统可能会错过一些事后反弹。但是这在SMTP时间被拒绝了。他们如何将从未离开发送服务器的消息标记为“已交付”?

因此,RBL IP问题(i)的解决方法在于您的Mandrill帐户中使用“专用IP 29.95美元/月”。但是使用专用IP本身可能会成为问题,并且大多数情况下不建议使用

0
在您的 mail.rb 文件中,您需要执行以下操作:
ActionMailer::Base.smtp_settings = {
   address: "smtp.mandrillapp.com",
   port: 587,
   enable_starttls_auto: true,
   user_name: "yourname@gmail.com",
   password: "apipassword",
   authentication: "login"

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接