postfix 透過 Gmail 驗證寄送 with openSUSE
OS: openSUSE 13.1
從來沒有想過再摸postfix 是因為 ipv6
因為專案的關係設定 nagios 監控主機
但是使用者卻沒有收到信件, 檢查一下 mail log, 發現應該是 ipv6 沒有設定適當反解的問題
to=<xxxxx@gmail.com>, relay=gmail-smtp-in.l.google.com[2404:6800:4008:c01::1a]:25, delay=31, delays=0.01/0.01/31/0.48, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[2404:6800:4008:c01::1a] said: 550-5.7.1 [2001:e10:2000:6:69fd:8220] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more 550 5.7.1 information.
但是由於是使用 VM 來進行系統監控, 當然就不會考量設定固定 ip / DNS 正反解來解決.
於是把想法放到 postfix 的 relayhost = [主機名稱/IP] 的作法上面
希望透過gmail 的 smtp 伺服器來進行郵件傳遞
參考
實作:
安裝相關套件( 下面這三個套件我其實已經內建 )
#zypper install postfix mailx cyrus-sasl
#vi /etc/postfix/sasl_passwd
新增
[smtp.gmail.com]:587 你的帳號@gmail.com:password
修改權限
# chmod 600 /etc/postfix/sasl_passwd
修改 postfix
# vi /etc/postfix/main.cf
加入
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
#vi /etc/postfix/master.cf
取消註解
#tlsmgr unix - - n 1000? 1 tlsmg
tlsmgr unix - - n 1000? 1 tlsmg
處理password file
#postmap /etc/postfix/sasl_passwd
重新啟動 postfix
#systemctl restart postfix.service
作法1
將 gmail 設定低安全性 ( google 應用程式也許無法使用, 安全性較低 )
到 gmail 的我的帳戶 -- > 登入和安全性 -- > 將 允許安全性較低的應用程式 啟用
作法2
使用兩階段認証應用程式密碼
#vi /etc/postfix/sasl_passwd
修改
[smtp.gmail.com]:587 你的帳號@gmail.com:兩階段應用程式密碼
處理password file
#postmap /etc/postfix/sasl_passwd
完成之後就可以試試看 使用 mail 指令看看能不能寄出
Notes
- 用 postconf 檢查設定
- 設定檔最好寫在最後一行 ( 感謝 Netman 老大 )
~ enjoy it
沒有留言:
張貼留言