【问题标题】:How to handle mail delivery errors with PHP如何使用 PHP 处理邮件传递错误
【发布时间】:2010-11-09 00:04:16
【问题描述】:

我正在构建一个用于发送时事通讯的 symfony 模块。这个想法是建立一个 adreese 的队列列表来接收邮件,然后通过一个 cron 作业,一次发送 50 个。

我现在不怎么做的是阅读当电子邮件地址不存在或邮件已满时服务器发回的邮件传递报告。想法是将这些错误报告存储在一个干净的地址列表中。

你知道如何实现吗?

【问题讨论】:

    标签: php email newsletter


    【解决方案1】:

    您可以在发送时使用reply to 地址。因此,绑定的电子邮件将发送到此 ID。您还可以创建另一个 PHP 脚本,该脚本将 read this "reply to" email inbox 并从中获取 id。然后,您可以从您拥有的列表中删除此 ID。

    【讨论】:

    • 请记住还要设置 Return-Path,因为如果 Return-Path 缺失,某些 MTA 不会将 MDF 邮件发送到 Reply-To 或者可能根本不接受邮件(或稍后将其丢弃)。
    【解决方案2】:

    在阅读“退回的收件箱”时,您可以使用这样的类来实际解析邮件并查看返回的状态(例如永久或临时错误):

    http://www.phpclasses.org/browse/package/2691.html

    要真正准确地解析邮件会给您带来困难,因为并非所有邮件服务器都是相似的,有些会向您发送带有“永久”标志的“邮箱已满”错误,而其他人可能会告诉您错误“用户不存在”是“临时的”。

    我曾经为此尝试过一个解决方案,并最终设置了我自己的解析器,该解析器连接到一个巨大的数据库,其中包含可能的服务器回复(以及它们的“真实”含义:)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2019-09-01
      • 2011-04-27
      相关资源
      最近更新 更多