一般來說 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 上面產生取得。