1. 程式人生 > >Centos7 開啟mail函式傳送郵件及sendmail啟動問題

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 | 威言威語