Centos服务器lnmp环境下安装Postfix,替换sendmail发送邮件
測試環境為阿里云的 Centos 5.4 32位系統,演示的域名為 fengjunzi.com,請更換為自己的實際域名。
1、如果裝了sendmail的話,先卸載了。
yum remove sendmail
2、安裝 Postfix
yum install postfix
3、更改默認MTA為Postfix:
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
4、完事兒,再次檢查下是否將MTA改為Postfix了:
alternatives --display mta
5、配置Postfix,vi編輯main.cf
vi /etc/postfix/main.cf
打開后分別找到以下幾項,將其前面的#去掉,并做配置:
myhostname = mail.fengjunzi.com
mydomain = fengjunzi.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.100.10/28, 127.0.0.0/8
relay_domains =
home_mailbox = Maildir/
以上幾個設置項不在同一個位置,需要分別尋找,并進行更改,其中相應的域名請改為自己的地址,mynetworks我是沒有做改變,自動就有的。
以下配置文件注釋轉自:https://www.centos.bz/
配置文件解釋:
mydomain:
mydomain參數是指email服務器的域名,請確保為正式域名(如centos.bz)
myhostname:
myhostname參數是指系統的主機名稱(如我的服務器主機名稱是mail.centos.bz)
myorigin:
myorigin參數指定本地發送郵件中來源和傳遞顯示的域名。在我們的例子中,mydomain是centos.bz,也是我的域名。
對于下面的一行,我們的郵件地址是user@centos.bz而不是user@mail.centos.bz。
myorigin = $mydomain
mynetworks:
mynetworks參數指定受信任SMTP的列表,具體的說,受信任的SMTP客戶端允許通過Postfix傳遞郵件。
mydestination:
mydestination參數指定哪些郵件地址允許在本地發送郵件。這是一組被信任的允許通過服務器發送或傳遞郵件的IP地址。用戶試圖通過發送從此處未列出的IP地址的原始服務器的郵件將被拒絕。
inet_interfaces:
inet_interfaces參數設置網絡接口以便Postfix能接收到郵件。
relay_domains:
該參數是系統傳遞郵件的目的域名列表。如果留空,我們保證了我們的郵件服務器不對不信任的網絡開放。
home_mailbox:
該參數設置郵箱路徑與用戶目錄有關,也可以指定要使用的郵箱風格。
6、檢測并啟動Postfix
service postfix status //檢測,若已啟動會列出其PID,如下: master (pid 25579) is running... //若未啟動,執行以下命令: service postfix start
7、設置開機啟動
chkconfig postfix on
我自己的安裝到此為止就結束了,因為我只需要的是mail功能,并非搭建郵件服務器。此時測試郵件發送,OK。
參考資料:http://www.gongzi.org/centos-install-postfix-sendmail.html
8、補充:如果你之前沒有配置過 sendmail 組件,那你很可能沒有修改 php.ini 的郵件發送路徑,那樣可能無法發送郵件。
所以你需要配置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 保存退出
重啟php-fpm進程
/etc/init.d/php-fpm restart
9、補充2:通過以上配置,就可以正常發送郵件了,但是發件人郵箱會是 www@fengjunzi.com 這種類型,如果想修改 www 這個參數,比如修改為 admin@fengjunzi.com 需要按照下面的步驟操作:
編輯 /etc/postfix/canonical:
vi /etc/postfix/canonical
添加下面類型的代碼:
www admin@fengjunzi.com
保存退出,然后進入到 /etc/postfix/ 目錄:
cd /etc/postfix/
執行命令:
postmap canonical
接著編輯 /etc/postfix/main.cf:
vi /etc/postfix/main.cf
一般情況下里面沒有canonical_maps這個參數,在空行處添加:
canonical_maps = hash:/etc/postfix/canonical
保存退出,然后重啟 postfix:
postfix reload
再次發送郵件測試,奇跡應該就發生啦!
10、補充3:通過上面的設置,雖然可以正常發送郵件,但是建議添加 DNS 解析,以減少被判定為垃圾郵件的幾率。通常需要添加3個解析:A記錄、MX記錄、TXT記錄,比如這里的 wpdaxue.com 域名的解析如下:
這樣就好多了,最后,推薦使用下面的網站來測試你的服務器發送的郵件所得分數,它會給出詳細的測試結果和改進方法:
http://www.mail-tester.com
總結
以上是生活随笔為你收集整理的Centos服务器lnmp环境下安装Postfix,替换sendmail发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 2008和2012安装.
- 下一篇: linux服务器提示configure