前陣子我在設定實驗室在用的伺服器,為了一些需求,要從伺服器寄送一些電子信件出來。不過之前的經驗是,直接從伺服器送出的信件會被當作是垃圾郵件,所以這次想透過 Gmail 的 SMTP 來送信件,而實測結果是這樣的方法的確不會再被當做垃圾郵件了。
Gmail 轉發設定
登入你的 Gmail 帳號,確認 IMAP 轉發設定有被啟用。

我之前就是這個沒啟用,搞了我好幾小時。
安裝套件
| 1 2 | # apt-get install sendmail mailutils sendmail-bin | 
建立授權檔案
首先是新增一個資料夾
| 1 2 3 |  # mkdir -m 700 /etc/mail/authinfo/  # cd /etc/mail/authinfo/ | 
進到資料夾後,我們要新增一個檔案,內容是你的 Gmail 帳號資訊,檔案名稱任意,這邊就叫做 gmail-auth 好了。
| 1 2 | AuthInfo: "U:root" "I:EMAIL地址" "P:密碼" | 
然後我們要弄一個 hash map 給剛剛的檔案
| 1 2 | # makemap hash gmail-auth < gmail-auth | 
設定 sendmail 套件程式
把以下的內容放到 sendmail.mc 檔案中第一個 MAILER 定義之前。
| 1 2 3 4 5 6 7 8 9 | define(`SMART_HOST',`[smtp.gmail.com]')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_OPTIONS', `A p')dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash -o /etc/mail/authinfo/gmail-auth.db')dnl http://linuxconfig.org/configuring-gmail-as-sendmail-email-relay | 
然後因為我們重新做了些設定,因此要重建整個 sendmail 設定檔案才能讓它生效。
| 1 2 | # make -C /etc/mail | 
重新載入 sendmail
| 1 2 | /etc/init.d/sendmail reload | 
測試
| 1 2 | $ echo "Hello, gmail" | mail -s "Hello!" user@domain.com | 
若設定無誤,大約過一小段時間後就會收到信了。
參考資料:http://linuxconfig.org/configuring-gmail-as-sendmail-email-relay
 
	
您好:請問沒有固定IP也能使用嗎?寄測試信也無法收到,請問該如何解決?
應該是可以的喔,看你用的 gmail 帳號有沒有出現一堆寄件備份就知道了