ad

2012年2月19日 星期日

Ubuntu 使用gmail 的smtp來發信

以Ubuntu 10.04 LTS、Exim4為例

文章來源 ( http://lyhdev.com/install:ubuntu_exim4_gmail_smtp )

安裝Exim4

sudo apt-get update && sudo apt-get install exim4

設定Exim4

執行設定指令

sudo dpkg-reconfigure exim4-config

接著是一串繁瑣的設定過程,但其實設定內容很簡單,重點在 smtp.gmail.com::587 這邊要設定正確。

  1. 請選擇最符合您的需求的郵件伺服器之設定類型。
    • 使用 smarthost 來傳送郵件;並藉由 SMTP 或是 fetchmail 來接收郵件 (mail sent by smarthost; received via SMTP or fetchmail)
  2. 系統郵件名稱 (mail name):
    • 自行輸入已註冊的網域名稱(例如 yourhostname.com)
  3. 在有 SMTP 連線傳入時,要進行監聽的 IP 位址 (listen on for incoming SMTP connections)
    • 127.0.0.1
  4. 要進行接收的其它郵件位址 (Other destinations for which mail is accepted)
    • 保留空白
  5. 要替哪些主機進行郵件轉寄 (Machines to relay mail for)
    • 保留空白
  6. 外寄郵件時所使用的 smarthost 的 IP 位址或主機名稱 (Machine handling outgoing mail for this host)
    • smtp.gmail.com::587
  7. 是否在外送郵件中隱藏本機的郵件名稱 (hide local mail name in outgoing mail)
    • 否 (No)
  8. 是否保持最小的 DNS 查詢量 (don’t keep number of DNS-queries minimal)
    • 否 (No)
  9. 本機郵件的傳送方式
    • 存放在 /var/mail 裡的 mbox 格式
  10. 是否將設定檔分散成較小的檔案 (split configuration into small files)
    • 否 (No)
  11. root 及 postmaster 的郵件代收者
    • 輸入系統中指定的使用者帳號(多位使用者以空白字元分隔)

設定GMail帳號密碼

由於GMail提供的SMTP服務會要求登入驗證,編輯 /etc/exim4/passwd.client 加入設定,格式如下。

*:gmailusername:gmailpassword

password為”明碼”,就是直接打上GMail的密碼不必另外編碼。

重新啟動Exim4服務

當Exim4設定變更後,需要重新啟動服務。

sudo service exim4 restart

測試發信

使用Linux系統的mail指令即可測是發信功能。

mail -s 'SUBJECT' you@mailserver

信件內容的編輯步驟:

  1. 隨意輸入一些文字內容
  2. 信件結尾,最後一行只輸入一個小數點「.」,然後按Enter
  3. 出現Cc:再直接按一次Enter略過

接著,這封測試信就會加入等待寄送的佇列。

發信紀錄

檢查信箱是否收得到測試信,若有問題則可以檢查Exim4的Log檔,查看郵件寄出紀錄是否正常。

tail -n 100 /var/log/exim4/mainlog

本文原作者為lyhcode( http://blog.lyhdev.com/ ),發表於思創軟體實驗室(http://lyhdev.com/ )。