laravel - 如何提高电子邮件的稳健性? [邮件枪,laravel]

标签 laravel mailgun laravel-mail

我计划使用以下方式提高电子邮件的稳健性。我正在使用 laravel 和 mailgun。如果任何退回电子邮件mailgun中,那么我想将其发送给与该电子邮件相关的人(不是之前的收件人,而是与之前的发件人或某人相关),所以我计划使用任务调度程序并每小时安排一次此过程。成功发送该电子邮件后,我想从 mailgun 中删除该电子邮件。

我实际上想知道如何实现从 mailgun 获取退回电子邮件,如果使用任务计划程序成功发送,我想删除该电子邮件来自mailgun。是否有任何样本可以实现这一目标?或者有什么不同的想法?

最佳答案

通常,当发生退回邮件时,Mailgun 等提供商会根据退回邮件状态/类型重试几次。发送到该电子邮件地址失败后,Mailgun 会将该地址放入您的退回列表中,以避免将来发送到该地址。尝试将电子邮件发送到不存在的地址、收件箱已满、域已过期等确实没有意义。因此,也许您应该在考虑这样做之前检查一下您的退回邮件列表。 Mailgun 的仪表板提供了事件发生的描述和日期。如果您希望再次发送至特定地址,您可以从退回列表中删除该地址。有关退回邮件的更多信息 here .

您可以使用mailgun-php或者简单地使用Guzzle调用他们的API来检索您的退回邮件。我不确定您删除电子邮件的含义,但希望这会有所帮助。

编辑:

您可以使用他们的 API 来获取您的所有 bounces ,还有 message content (保留取决于您的计划或设置)如果您需要原始内容。您还可以使用他们的 webhooks获取失败的电子邮件,因此您实际上不需要安排/cron。

编辑2:

退回邮件列表仅存储以前退回的电子邮件的电子邮件地址。另外,我刚刚意识到,如果您每小时检查一次退回邮件,看起来抑制/退回 API 不会有太大帮助,因为您无法知道列表中已有地址的邮件是否失败。这是退回列表中的唯一数据:

      {
        "address": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c2a3aeaba1a782a7baa3afb2aea7eca1adaf" rel="noreferrer noopener nofollow">[email protected]</a>",
        "code": "550",
        "error": "No such mailbox",
        "created_at": "Fri, 21 Oct 2011 11:02:55 GMT"
      },

所以看起来你必须使用 events APIwebhooks获取失败的消息。 我用过mailgun-php不久前,我发现由于该类的 protected 属性,在该库上使用事件并不容易。因此,如果您遇到麻烦,也许只需使用 Guzzle 或使用 webhook 方法即可。

关于laravel - 如何提高电子邮件的稳健性? [邮件枪,laravel],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62946370/

相关文章:

jquery - 与 Laravel Mix 一起使用时 TinyMCE 主题文件丢失

php - 如何在不覆盖任何值的情况下合并两个集合

laravel - 如何在 Laravel 应用程序中添加回复?

php - 在 Laravel 中发送没有 `to` 方法的邮件

php - Laravel Route 无法正确显示页面

php - Laravel 添加请求到 url

php - 电子邮件发送在 Mailgun 中不起作用到 Outlook

windows - 在 Windows 上使用 PHP 通过中继发送邮件

显示 html 标签的 Laravel 5 邮件模板