用于结果处理的phpmailer错误代码

时间:2015-10-29 07:39:40

标签: email phpmailer

我正在构建一个mailout功能,它可以正常工作。但是,我想区分各种潜在的(高级别)结果,以确定当前发送尝试后每条消息会发生什么。

这一定是一个常见的要求,所以我似乎错过了一些非常明显的东西,但是我无法在这里或通过谷歌或PHPMailer网站找到任何可以解决它的东西。可能是因为关于特定错误的问题太多,我无法在所有其他结果中找到有用的东西。

非常高的水平:
尝试发送,并评估产生的错误/结果。确定此消息是否已发送,必须稍后重试或永久失败 - 成功 - >将消息状态更新为' SENT:OK'
- 发送,但有些问题(例如一个收件人失败,其他收件人处理好) - > ' SENT:有些错误'
- 由于临时问题(例如连接问题,附件打开)而失败 - > '稍后尝试'
- 由于我们不应该尝试重新发送的消息特定问题而失败 - > '失败:有些错误'

因为我无法找到现有资源,例如一个错误表,我花了一些时间来处理phpmailerException代码,试图自己构建一个,但它并不简单,因为a)它们似乎不是根据这种分组设计的逻辑,b)唯一标识特定错误并不容易:PHPMailer提供了人性化的消息,这些消息在不同的语言中是不同的,而不是可识别的代码 - 假设我的解决方案需要在不同的语言安装中工作。一个问题!

显然,SMTP本身提供了一系列我可能用于此目的的错误代码,但是如何通过PHPMailer访问这些错误代码呢? (这对我有用,因为我此时只使用SMTP - 但是,如果使用了像sendmail这样的其他消息传输,这将无法工作,所以我更喜欢PHPMailer解决方案)

1 个答案:

答案 0 :(得分:1)

如果您想要个别地址的单独结果代码,您确实需要单独发送每条消息。如果您确实在某些收件人上遇到错误,它们将列在ErrorInfo属性中 - 查看smtpSend函数以查看错误字符串的组装方式。我同意解析这些信息并不是特别容易。 PHPMailer中的错误消息通常比开发人员更多,因此翻译并不重要。如果启用例外而不是仅依赖返回值,则可以获得有关错误的更多信息。