2014年8月18日 星期一

在 Ubuntu 14.04 桌面環境上面設定 Exim4 使用 Gmail 來寄信

一般來說 Ubuntu 桌面環境安裝好就已經將 exim4 安裝在裡面了,只不過預設上是使用「只傳送本機的郵件;並未位於網路上」,如果要改用 Gmail 就要執行以下的指令。

$ sudo dpkg-reconfigure exim4-config

然後選擇「使用 smarthost 來傳送郵件;且無本機郵件」

接下來的「系統郵件名稱 (mail name)」填入“localhost”

「在有 SMTP 連線傳入時,要進行監聽的 IP 位址」維持“127.0.0.1 ; ::1”

「要進行接收的其它郵件位址」填入空白

「本機使用者的虛擬網域名稱」維持“localhost”

「外寄郵件時所使用的 smarthost 的 IP 位址或主機名稱」填入“smtp.gmail.com::587”

之後都用預設值,直到結束。

接下來使用以下指令來找出 Gmail 的 smtp 伺服器。

ubuntu@trusty:~$ host smtp.gmail.com
smtp.gmail.com is an alias for gmail-smtp-msa.l.google.com.
gmail-smtp-msa.l.google.com has address 74.125.25.108
gmail-smtp-msa.l.google.com has address 74.125.25.109
gmail-smtp-msa.l.google.com has IPv6 address 2607:f8b0:400e:c02::6d

然後就可以編輯 /etc/exim4/passwd.client 這個檔案,加入以下這行。

*.google.com:SMTPAccountName@gmail.com:y0uRpaSsw0RD

然後編輯一下 /etc/email-addresses 將自己本機上的帳號跟 Gmail 關聯起來。

$ echo "$(whoami): SMTPAccountName@gmail.com" | sudo tee -a /etc/email-addresses

最後再用以下指令,重新啟動 exim4 應該就可以寄信出去了。

$ sudo service exim4 restart

可以使用下面這個指令的寄給自己測試一下。

$ echo "This is a test mail." | mail -s "test mail" SMTPAccountName@gmail.com

P.S. 上面提到的 SMTPAccountName 請改成自己的帳號,y0uRpaSsw0RD 密碼可以到 https://security.google.com/settings/security/apppasswords 上面產生取得。

參考資料:https://wiki.debian.org/GmailAndExim4