Centos7 開啟mail函式傳送郵件及sendmail啟動問題
自從換了阿里雲伺服器之後,我也就沒有理過部落格的回覆評論郵件通知功能。前2天有朋友跟我說,之前評論都有郵件通知,現在怎麼沒有了。我想應該是沒有開始支援mail()函式的語言,VPS的好處就是自己可以隨便折騰。於是研究下怎麼開啟mail()函式,本文做個記錄,方便以後可能用到。
我的阿里雲伺服器使用的是LNMP環境,CentOS 5.8 64位。
1.安裝 sendmail 元件
yum install sendmail |
2.使用下面的命令重啟php-fpm程序
/etc/init.d/php-fpm restart |
3.檢測sendmail是否執行正常
/etc/init.d/sendmail status |
如果顯示正在執行running 就可以。
可能用到的命令
/etc/init.d/sendmail start (啟動sendmail) |
/etc/init.d/sendmail stop (關閉sendmail) |
/etc/init.d/sendmail restart (重啟sendmail) |
4.配置php.ini,填寫sendmail的絕對路徑
使用命令開啟編輯php.ini
vi /usr/local/php/etc/php.ini |
輸入?sendmail_path 查詢定位(或者手動跳轉找到sendmail_path),你會發現預設是下面的程式碼
;sendmail_path = |
按 i 進入編輯,將這行修改為
sendmail_path = /usr/sbin/sendmail -t –i |
按 Esc 鍵退出編輯,輸入 :wq 儲存退出
5.重啟php-fpm程序
/etc/init.d/php-fpm restart |
這樣就成功了,如果不放心,新建一個php檔案,命名為 mail.php ,可以使用下面程式碼測試下。
<?php |
$txt = "hello,you are a good boy!" ; |
// 以下的郵箱地址改成你的 |
$mail = '[email protected]' ; |
// 傳送郵件 |
mail( $mail , "My subject" , $txt ); |
echo 'message was sent!' ; |
?> |
儲存並上傳至你的網站根目錄,並在瀏覽器執行:
http://你的網址/mail.php
到時候你的郵箱就應該能收到郵件了,不過基本都在垃圾郵件裡面,注意檢視,如果收不到郵件的話,檢查在操作過程時候正常,有木有重啟sendmail或者重啟php。一般來說,就能正常收到郵件了。
當然,功能是實現了,不過用上面的測試程式碼測試的時候,發現成功發一封郵件很慢很慢,要好幾十秒甚至一分鐘的時候。然後我在部落格中發表或者回複評論的也是異常的慢,超過了使用者等待的心理期限。優化這個效率勢在必行了,不然只能砍掉這個功能。
網上方法很多很多,修改這個檔案又是修改那個檔案,感覺比較麻煩,於是找個了操作最少的修改,然後成功了。
修改/etc/hosts ,未修改之前
127.0.0.1 localhost.localdomain localhost |
修改成
127.0.0.1 localhost.localdomain localhost 主機名稱 |
檢視本機的主機名稱的命令是: hostname
完成修改之後重啟下sendmail
service sendmail restart |
此致,發表評論又回覆到了幾秒完成發表成功了。大家發表評論的時候看看相比慢不慢,同時能不能收到評論回覆的通知郵件,感謝大家。
本文參考了 LNMP筆記:解決mail函式不能傳送郵件 和 解決sendmail啟動慢的問題 文章內容。
本文固定連結: https://www.weisay.com/blog/lnmp-mail-sendmail.html | 威言威語