來源:http://darkranger.no-ip.org/document/linux/gmail_smtp.htm
今天談的是如何在 Postfix 郵件伺服器軟體中利用 Google 的 Gmail 進行郵件轉寄。這樣做有什麼好處呢?通常,使用動態 IP 的郵件伺服器都必須設定由其網路的提供者:也就是由 ISP 來代為寄送郵件,如此才能寄出合法且有效的信件,對方也才肯收而不是被擋掉。不過 Gmail 提供了另一種方案,只要擁有 Gmail 的帳號就可以在郵件伺服器中設定由 Gmail 代為寄送郵件,免費且有效!如果在一些使用 ISP 轉寄也無法有效寄出的情況下,使用 Gmail 轉寄是一個值得考慮的方案。
在繼續瀏覽本文之前,建議先參閱鳥哥的郵件伺服器架設文件,先對基本概念以及 Postfix 設定方式有些瞭解。另外請確認所使用的 Postfix 支援 SSL/TLS,由於 Fedora 內附的 Postfix 已經支援 SSL/TLS,所以不需要在這方面做特別處理。
1. 申請 Gmail 帳號
這理所當然是第一個程序,還沒有的話趕緊去申請一個吧,已經有了帳號就繼續下一個步驟。
2. 建立 SSL 憑證
為了方便管理,可以建立一個目錄來方便放置憑證,以 DR 為例:
# mkdir /etc/postfix/gmail
# cd /etc/postfix/gmail
然後使用以下指令建立憑證:
# openssl genrsa -out gmail.key 1024
# openssl req -new -key gmail.key -x509 -out gmail.crt
執行第二個指令時會要求填入資料(國家、地區、組織、信箱位址等),按著說明填入即可,這不會影響寄信功能。
3. 建立 Gmail 的密碼認證檔案
# vi /etc/postfix/sasl_passwd
然後寫入以下內容:
gmail-smtp.l.google.com username@gmail.com:password
smtp.gmail.com username@gmail.com:password
上頭的 username 和 password 就是要添入 Gmail 的帳號以及密碼,編輯完並儲存後,再執行下個指令去建立資料庫檔案:
# postmap hash:/etc/postfix/sasl_passwd
另外,由於該檔案裡頭存放了相當重要的帳號密碼資訊,DR 建議修改其存取權限,讓一般使用者無法瀏覽:
# chmod 600 /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd.db
4. 設定 Postfix
# vi /etc/postfix/main.cf
寫入以下內容:
relayhost=[smtp.gmail.com]:587
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tks_note_starttls_offer = yes
tls_random_source = dev:/dev/urandom
smtp_tls_scert_verifydepth = 5
smtp_tls_key_file=/etc/postfix/gmail/gmail.key
smtp_tls_cert_file=/etc/postfix/gmail/gmail.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert =no
smtp_tls_enforce_peername = no
儲存後重新啟動 Postfix:
# /etc/rc.d/init.d/postfix restart
最後,寄封測試信然後檢查一下 maillog,並且確認目標郵箱是否成功收到,如此便大功告成了。
參考網站:
http://linux.vbird.org/linux_server/0380mail.php
http://imamba.com/werd/?page_id=102
1 則留言:
謝謝版主提供這麼優的資訊,小弟這裡有一篇如果是用Windows主機時,能夠跟版主一樣使用gmail ssl外部轉寄的資訊要提供給網友們參考
使用SMTP外寄
張貼留言