sendmail發送郵件顯示代發解決方案


在網站上很多地方都需要發送郵件,如用戶的激活,找回密碼等,因此發送郵件是站點的基本需要。之前使用虛擬主機構建站點的時候用phpmailer通過smtp協議來發送郵件。現在有了自己的服務器,就可以考慮自己搭建服務器來發送郵件,好處一是發送人可以設置為諸如‘admin@example.com’之類增加可信度,另外一個則是能夠提高發送郵件的速度。

sendmail是linux系統下著名的郵件收發軟件。服務器系統是ubuntu 10.04LTS,下面說一下安裝和配置的過程,以備后用。

 

 

  1. 配置sendmail:
    • 添加本地域名:

      在文件里面輸入域名, 例如:

    • 修改submit.cf文件:

      找到行 #Dj$w.Foo.COM,修改為:

      注意域名前加Dj是其格式(具體沒查是什么意思)

    • 添加域名MX(Mail eXchanger)記錄, 這部分應該在域名提供商的控制面板里面更改。
  2. 重啟服務:

經過這幾步之后sendmail服務已經配置好,就支持收發郵件。但是注意目前的配置只允許本機用戶(127.0.0.1)收發郵件,而且發信的速度會很慢。默認的發信人是 username@hostname,username為系統的當前登陸用戶,hostname是服務器的主機名。這樣發出去的郵件極大的可能被認為是垃圾郵件而拒收。經過測試gmail能接收,但是139郵箱就拒收。詳細信息可以查看記錄文件,默認為: /var/log/mail.log

通過查看記錄,同樣可以找到發信慢的原因,那就是 hostname不能被解析。所以需要在host文件里加入hostname的支持:

 

sudo vim /etc/hosts

解析本機地址:

 

127.0.0.1 example.com localhost hostname

 

從國外的論壇上看到這個順序比較重要,應該按照這個格式解析本機地址。

經過這樣設置,發送郵件的速度應該提高許多, 如果還需要更好的速度,可以使用 djbdns這個軟件利用緩存的dns提高速度。

配置好郵件服務器之后,接下來就是應用了。修改php的配置讓其mail使用內置的sendmail來發送郵件:

 

 

sudo vim /etc/php5/apache2/php.ini

 

找到 sendmail_path,修改為:

 

sendmail_path=/usr/sbin/sendmail -t -i -f'admin@example.com'

 

注意-t -i選項應該在-f前面,否則無效。-f指定郵件的發件人,而不是顯示”由 xxx 代發”的字眼。

這樣一來sendmail和php都配置好了,接下里就是在網頁腳本里調用mail函數即可。

 

轉自:http://www.tlanyan.me/sendmail-install-configure/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM