1. 程式人生 > >ubuntu搭建postfix smtp郵箱服務為站點發送郵件

ubuntu搭建postfix smtp郵箱服務為站點發送郵件

需求很簡單,也不搞得那麼麻煩。不需要接收郵件,僅僅利用PHP類庫PHPMailer傳送驗證碼郵件,接收郵件可以用什麼qq,網易的。還有一點如果配置接收郵件,還需要考慮什麼安全,垃圾郵件啥的。

 

正文開始

 

1 解析域名 (防止郵件被扔進垃圾郵箱)

mail.daliycode.com A記錄到 123.123.123.123(你的伺服器ip)
@    MX記錄到 mail.daliycode.com 優先順序10
@    TXT記錄到 v=spf1 mx -all

2 安裝postfix

apt-get install postfix

安裝完畢應該就直接可以傳送郵件了,測試傳送郵件:

echo "測試郵件正文" | mail -s "郵件標題" [email protected](你的接收郵箱地址)

一般在垃圾郵箱裡面,域名解析成功後才不會到垃圾郵箱。

 

3 安裝cyrus-sasl

 apt-get insatll sasl2-bin

4 配置postfix

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination reject_unauth_destination
myhostname = mail.daliycode.com
mydomain=daliycode.com
myorigin = $mydomain
mydestination = $myhostname.localhost.$mydomain,localhost,$mydomain
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only  #僅傳送
inet_protocols = ipv4
#配置smtp認證 PHPMailer就是通過這個認證賬戶去傳送郵件的
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
broken_sasl_auth_clients = yes
smtpd_sasl_path = smtpd    
smtpd_sasl_security_options = noanonymous #禁止匿名
smtpd_sasl_authenticated_header = yes
message_size_limit = 15728640

5 建立smtpd.conf 檔案

vim /etc/postfix/sasl/smtpd.conf  
#32位機器 vim /usr/lib/sasl2/smtpd.conf
#寫入內容

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM

 

6 使用saslpasswd2建立認證使用者及密碼(安裝了cyrus-sasl就已安裝saslpasswd2)

#建立[email protected]的郵箱賬號(也是smtp的賬號)和密碼
saslpasswd2 -c -u daliycode.com(你的域名) admin(使用者) #回車要求輸入密碼,2次

#這裡很關鍵,在ubuntu下postfix所能瀏覽的目錄有限制,必須把資料庫檔案複製到postfix的執行目錄下,不然在使用者驗證的時候會出錯。

cp -a /etc/sasldb2 /var/spool/postfix/etc/

7 將postfix新增到sasl組

gpasswd -a postfix sasl
#修改sasldb許可權
chmod 640 /var/spool/postfix/etc/sasldb2
#列舉sasldb2中的使用者
sasldblistusers2 -f /var/spool/postfix/etc/sasldb2

7 測試smtp

telnet localhost 25
auth login
334 VXN1cm5hbWU6 #會顯示出這個
#輸入base64加密後的賬號字串
dGVzdEBqdW1wc2VydmVyLmNvbQ==
#輸入base64加密後的密碼字串
0dGVzdDEyMw==
235 2.7.0 Authentication seccessful  #表示認證成功,即配置成功。

8 你的web系統後臺配置smtp資訊,並測試郵件傳送

 

20181108181502.png

QQ截圖20181108181834.png

QQ截圖20181108181901.png

怎麼樣,很簡單,也很實用。

參考:

https://blog.csdn.net/silence_stone/article/details/51243430

https://www.hyahm.com/article/225.html

https://www.jb51.net/article/101402.htm

原文地址:ubuntu搭建postfix smtp郵箱服務為站點發送郵件