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

phpmailer error codes for outcome processing

我正在构建邮寄功能,目前它运行良好。但是,我想区分各种潜在(高级)结果,以确定在当前发送尝试后每条消息会发生什么情况。

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

级别很高:
尝试发送,并评估结果 error/result。确定此消息是否已发送、必须稍后重试或永久失败。
- 成功 -> 将消息状态更新为 'SENT: OK'
- 已发送,但存在一些问题(例如,一个收件人失败,其他人处理正常)-> 'SENT: some error'
- 由于临时问题(例如连接问题、附件打开)而失败 -> 'TRY LATER'
- 失败,由于我们不应尝试重新发送的消息特定问题-> 'FAILED: some error'

因为我无法找到现有资源,例如table 个错误,我花了一些时间研究 phpmailerException 代码以尝试自己构建一个,但这并不简单,因为 a) 它们似乎不是根据这种分组逻辑设计的, b) 很难唯一地识别特定错误:PHPMailer 提供了人性化的消息,这些消息在不同的语言中是不同的,而不是可识别的代码——考虑到我的解决方案需要跨不同的语言安装工作,这是一个问题!

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

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