2

我正在使用以下错误处理功能,$admin_email如果站点处于活动状态($live==TRUE),它将通过电子邮件发送错误。我的主机现在需要 SMTP 身份验证。我是否正确假设我必须删除对 error_log() 的调用并使用 PEAR 邮件包或 PHPMailer 发送邮件?

// Create the error handler.
function my_error_handler ($e_number, $e_message, $e_file, $e_line, $e_vars) {

global $live, $admin_email;

// Build the error message.
$message = "An error occurred in script '$e_file' on line $e_line: \n<br />$e_message\n<br />";

// Add the date and time.
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "\n<br />";

// Append $e_vars to the $message.
$message .= "<pre>" . print_r ($e_vars, 1) . "</pre>\n<br />";

if ($live) { // Don't show the specific error.

    echo('<p>sending email</p>');

    error_log ($message, 1, $admin_email); // Send email.

    // Only print an error message if the error isn't a notice.
    if ($e_number != E_NOTICE) {
        echo '<div id="Error">A system error occurred. An administrator has been notified. We apologize for the inconvenience.</div><br />';
    }

} else { // Development (print the error).
    echo '<div id="Error">' . $message . '</div><br />';
}

return FALSE;

} // End of my_error_handler() definition.
4

1 回答 1

0

邮件功能不使用授权。我认为在 Windows 上,您可以在 php.ini 文件中将 php 设置为默认使用 smtp。

于 2012-05-18T22:32:56.527 回答