IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何利用Amazon EC2服務‧建立Postfix郵件伺服器

01. 網頁內容一旦用到郵件寄出服務,之前想法都是利用Gmail的SMTP直接將郵件寄出去。一直想學習Linux Postfix伺服器,今天作了一個最基本的測試。

02. 要有自己的郵件伺服器,第一步當然要有自己的網域名稱及DNS服務。既然是測試,當然是選擇免費的No-IP服務。

03. 在No-IP網站先登記一個帳戶,今次我用了nephkmail.ddns.net作為網域名稱,IP地址就是Amazon EC2 Ubuntu伺服器的IP地址(當然是假設你已在Amazon中建立了一隻Ubuntu的伺服器),順便也同時設定了MX Record。

04. 返回Amazon EC2伺服器,因為已用了No-IP的DNS服務,所以可以停用Amazon EC2的Public DNS服務。

05. 在最上面『服務』位置,輸入『VPC』,再選擇『VPC‧隔離的雲端資訊』。

06. 在『Resource by Region』位置,選擇『VPCs』欄位。

07. 在『Actions』位置,選擇『Edit DNS hostnames』。

08. 取消『DNS hostnames』選項,再按『Save』。

09. 完成後返回伺服器頁面,會看到『Public DNS (IPv4)』已變成空白。

10. 利用SSH/PuTTY方式連接到Amazon EC2伺服器,今次我用了Ubuntu 18.04作為測試。

11. 登入名稱是ubuntu。

12. 如果當初設定Amazon EC2伺服器是用密鑰方式,只要設定好私人密鑰,登入便不需要密碼。

13. 設置hostname。

sudo hostname nephkmail.ddns.net

14. 修改/etc/hosts檔案

sudo nano /etc/hosts

加入以下內容:
127.0.0.1 nephkmail.ddns.net
nephkmail.ddns.net <Your server IP>

15. 修改/etc/hostname檔案。

sudo nano /etc/hostname

將內容更改為:
nephkmail.ddns.net

16. 重新啟動伺服器。

sudo reboot

17. 再次用SSH/PuTTY方式連接到伺服器。

18. 先更新Ubuntu系統。

sudo apt-get update
sudo apt-get upgrade

19. 下載Postfix及設置程式。

sudo DEBIAN_PRIORITY=low apt install postfix

20. 用鍵盤Tab鍵移至按『OK』。

21. 選擇『Internet Site』。

22. 輸入『System mail name』名稱,用預設的名稱就可以了。

23. 設置那些系統用戶電郵會存送到那個帳戶,可以用現在ubuntu帳戶或其他的特定的帳戶。

24. 設置『domain』名稱,用預設的名稱就可以了。

25. 設置『Force synchronous updates』選項,選『No』。

26. 設置『Local networks』,用預設的設定就可以了。

27. 設置『Mailbox size limit』,用預設的設定就可以了。

28. 設置『Local address extension character』,用預設的設定就可以了。

29. 設置『Internet protocols to use』,用預設的設定就可以了。

30. 安裝進行中。

31. 如需要再設置Postfix一次,可執行以下命令。

sudo dpkg-reconfigure postfix

32. 建立用戶郵箱。

sudo mkdir -p /home/ubuntu/Maildir/{cur,new,tmp}

33. 將郵箱資料夾權限設定為該用戶。

sudo chown ubuntu:ubuntu Maildir/ -R

34. 同時,可以嘗試建立一個別名(alias)帳戶。以下做法是當有人傳送電郵比bill時,電郵最終會傳到ubuntu郵箱內,bill就是ubuntu的別名。

sudo nano /etc/aliases

加入以下內容:
bill: ubuntu

35. 完成後,還需要執行以下命令更新。

sudo postalias hash:/etc/aliases

36. 設定Postfix用戶預設的郵箱位置。

sudo postconf -e 'home_mailbox= Maildir/'

37. 設定Postfix別名檔案位置。

sudo postconf -e 'virtual_alias_maps= hash:/etc/aliases'

38. 重新啟動Postfix服務。

sudo systemctl restart postfix

39. 開啟Ubuntu的防火牆。

sudo ufw allow Postfix

40. 將系統預設定的Maildir位置,更改到正確的位置上,即『~/Maildir』資料夾。

echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

41. 執行檔案以令設定生效。

source /etc/profile.d/mail.sh

42. 安裝電郵客戶端。

sudo apt-get install s-nail

43. 設定/etc/s-nail.rc檔案。

sudo nano /etc/s-nail.rc

在最下面位置加入以下內容:
set emptystart
set folder=Maildir
set record=+sent

44. 初始化s-nail帳戶。

echo 'init' | s-nail -s 'init' -Snorecord ubuntu

45. 執行s-nail程式,會看到剛才的初始化郵件。留意郵箱位置應該為『/home//Maildir』。

s-nail

46. 測試發送電郵。輸入以下命令,完成後按『Ctrl+D』傳送。

s-nail <email_address>

47. 看看目的地郵箱,是否收到測試電郵。收不到電郵可能是設定問題,也可能是對方的伺服器阻擋了電郵。

48. 回覆電郵內容。

49. 再返回伺服器,輸入以下命令。便可以看到郵箱內容。

s-nail

50. 我們也可以從其他電郵,發送到bill@nephkmail.ddns.net。

51.看看ubuntu帳戶是否收到電郵。

52. 是不是收不到電郵呢?因為忘記了設置Amazon EC2伺服器的防火牆,只要加開埠25便會收到電郵。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *