的php.ini
mail.log = "c:/wamp/logs/maillog.log"
PHPMailer_Email.php (使用以下脚本,它不会在指定文件中写入日志,但会发送电子邮件。)
include 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = "domain.example.net";
$mail->Port = 25;
$mail->From = $from;
$mail->FromName = "From Name";
$mail->addAddress($to);
$mail->addReplyTo($from, "Reply");
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = $body;
if(!$mail->send()){
echo "Mailer Error: ". $mail->ErrorInfo; die();
}
else{
echo "Message has been sent successfully";
}
Email.php (使用以下脚本,编写日志并发送电子邮件)
mail($to, $subject, $body);
有人可以建议我如何让PHPMailer在maillog.log文件中编写邮件日志吗?
答案 0 :(得分:1)
您的本地日志文件适用于您的本地邮件服务器,但您需要直接发送到外部服务器,因此它不会通过您的本地服务器,因此无需记录。如果你想捕获调试输出并记录它,看看Debugoutput
属性提供的选项 - 你可以注入一个callable并将它保存到你喜欢的地方,如下所示:
$mail->DebugOutput = function ($str, $level) {
file_put_contents(
'/path/to/log/file',
date('Y-m-d H:i:s') . "\t" . $str,
FILE_APPEND | LOCK_EX
);
};