【问题标题】:Is there any good way logging which PHP script is sending emails via PHPMailer?有什么好方法记录哪个 PHP 脚本通过 PHPMailer 发送电子邮件?
【发布时间】:2014-06-25 16:02:14
【问题描述】:

我遇到了一个用于发送垃圾邮件的未知 PHP 脚本的问题。该站点使用 PHPMailer,而 PHPMailer 又使用 sendmail。

如何使用 PHPMailer(及其内容)记录哪些 PHP 脚本正在发送电子邮件?

在 php.ini 中使用 mail.log = /var/log/phpmail.log 本来很容易,但如果站点使用 PHPMailer,它就不起作用了?

【问题讨论】:

    标签: php sendmail phpmailer


    【解决方案1】:

    你可以在你的PHPMailer的send()方法中使用debug_backtrace()函数:

    http://php.net/manual/de/function.debug-backtrace.php

    在这里你可以做你想要的日志记录(我建议记录到文件)

    注意:编辑库文件不是好习惯。也许您想从 PHPMailer 扩展一个类,在此处创建您的附加逻辑,然后使用它。

    class MyPhpMailer extends PHPMailer {
        public function send() {
            $callinfo = print_r(debug_backtrace(), true);
            //Logging $callinfo...
            parent::send();
        }
    }
    

    【讨论】:

    • 不是很好的做法,但它有效:error_log(print_r(debug_backtrace(),TRUE));
    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2014-06-17
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多