ubuntu搭建postfix smtp郵箱服務為站點發送郵件
阿新 • • 發佈:2018-11-12
需求很簡單,也不搞得那麼麻煩。不需要接收郵件,僅僅利用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資訊,並測試郵件傳送
怎麼樣,很簡單,也很實用。
參考:
https://blog.csdn.net/silence_stone/article/details/51243430
https://www.hyahm.com/article/225.html
https://www.jb51.net/article/101402.htm