Mac下使用php的error_log()函數發送郵件

在開發web項目或者其餘場景下,有時候咱們須要設置「報警」。好比當數據庫的某一項指標達到某一個值時,須要通知網站管理員。今天跟你們分享一個比較簡單的php報警的功能。php

先介紹一個php中用來記錄log的一個函數error_log,它用來發送錯誤到某個地方。函數介紹web

bool error_log ( string $message [, int $message_type = 0 
[, string  $destination [, string $extra_headers ]]]

其中$message表示要記錄的信息;$message_type用來設置信息要發往何處。可能的信息類型以下:shell

0 : message 發送到 PHP 的系統日誌,使用 操做系統的日誌機制或者一個文件,取決於 error_log 指令設置了什麼。 這是個默認的選項。
1 : message 發送到參數 destination 設置的郵件地址。 第四個參數 extra_headers 只有在這個類型裏纔會被用到。
2 : 再也不是一個選項
3 : message 被髮送到位置爲 destination 的文件裏
4 : message 直接發送到 SAPI 的日誌處理程序中。

此外,$destination由$message_type所決定;$extra_headers當$message_type爲1時使用。數據庫

在*nix操做系統下,php發送郵件是經過sendmail組件。因此要先確保已經安裝了sendmail組件。能夠經過如下命令測試你的服務器上的郵件服務是否正常。未發送成功的郵件默認會退回/var/mail/下。能夠自行查看退回的郵件中的詳情。服務器

echo "test mail content" | mail -s "test mail subject" {xxx@yy.com}

Start

1.安裝sendmail函數

Mac正常默認帶有sendmail,位於/usr/sbin/下。若是沒有,能夠自行搜索安裝下~

2.找到php所使用的配置文件php.ini測試

php -i | grep php.ini

3.打開php.ini,找到sendmail配置行網站

sendmail_path = "/usr/sbin/sendmail -t -i"

4.若是是在web項目中使用,配置完之後重啓服務器方可生效。操作系統

5.測試。使用php -a 打開php交互式shell,輸入如下代碼,而後前往郵箱查看(注:郵箱可能會屏蔽掉此類郵件,請注意添加白名單)。.net

error_log('hello world',1,'xxx@yy.com');

大體是如上步驟。其餘Linux類操做系統關於此的配置大同小異,感興趣的夥伴能夠自行嘗試下。本文不足的地方也請大夥們提出批評修改意見~

相關文章
相關標籤/搜索