场景:我有许多 Codeigniter 应用程序,我正在改进电子邮件传递系统以使用数据库队列。所以我的应用程序记录了所有需要发送到数据库的电子邮件。我每分钟运行一个 cron 作业来检查这个数据库队列并发送任何待处理的电子邮件(根据需要限制到我的服务器限制)。
这一切都非常出色,并极大地改进了我们的应用程序。
部分功能是它会记录未发送电子邮件的时间,并稍后重试。作为该过程的一部分,我更新数据库以包含发送尝试期间的任何错误消息,以便稍后进行调试。我使用 $this->email->print_debugger() 来执行此操作。
再次一切正常(正常)。
问题是,如果电子邮件中包含附件,则附件“数据”将作为 print_debugger() 的一部分转储 - 所以我的数据库会被大量的附件数据文本转储破坏。
我尝试了什么:所以我查看了 codeigniter 的 Email.php 类,认为我可以扩展库以不将附件数据包含在 print_debugger() 函数中 - 但似乎从函数返回的错误是实际上来自 SMTP 服务器本身的另一个功能。我看不到阻止附件数据出现错误的方法。
问题/挑战:谁能看到我可以捕获 SMTP 错误和电子邮件标头的方法 - 但不是附件数据?我也很乐意不捕获任何电子邮件正文(因为我知道数据库队列中的内容)。