首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Windows 環境下配置 PHP 將錯誤日誌以郵件發送:php.ini 設定與 error_log() 實戰

     編輯:PHP 綜合知識

php.ini 設定

; 發件人郵箱
sendmail_from = your_email@qq.com

; Windows 下使用 sendmail.exe(需另行下載)
sendmail_path = "G:\sendmail\sendmail.exe -t"
; 或使用 msmtp 等替代工具

PHP 代碼啟用郵件日誌

<?php
// 關閉畫面顯示錯誤
ini_set('display_errors', 0);
// 開啟錯誤日誌功能
ini_set('log_errors', 'on');
// 記錄所有等級錯誤
error_reporting(-1);

// 發送錯誤郵件(類型 1 = 郵件)
error_log('系統遭受攻擊,產生致命錯誤', 1, 'admin@qq.com');
// 第 3 參數為收件人,可加第 4 參數 additional_headers(如 From、Cc)

sendmail.exe 取得方式

smtp_server=smtp.qq.com
smtp_port=465
auth_username=your_email@qq.com
auth_password=your_auth_code
force_sender=your_email@qq.com

完整測試流程

  1. 修改 php.ini,重啟 Apache
  2. 建立測試腳本執行 error_log(...)
  3. 檢查收件箱(含垃圾郵件)
  4. 若失敗,查看 Apache error.log 尋找 sendmail 執行錯誤

替代方案:使用 PHPMailer 直接發送

不依賴 php.ini 設定,程式碼控制更靈活,支援 SSL/TLS、附件、HTML 郵件:

require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.qq.com';
$mail->SMTPAuth = true;
$mail->Username = 'your@qq.com';
$mail->Password = 'auth_code';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('your@qq.com', 'System');
$mail->addAddress('admin@qq.com');
$mail->Subject = 'PHP Error Alert';
$mail->Body    = 'Error: ' . $msg;
$mail->send();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved