如何在虛擬機器上設定郵件伺服器

要在你的虛擬機器(VM)上開啟連接埠 25,請前往 VPS Manager > 選擇「Mail Bridge」分頁 > 按下「Add Mail Bridge」按鈕。

設定 PTR 記錄並啟用連接埠 25 後,你便可以設定你偏好的 SMTP 伺服器。以下是 Postfix、Exim 及 Sendmail 的範例。請使用你在 VPS Manager 中顯示的 VM IP,並確保你的 PTR 記錄的網域名稱 與寄件者網域相符(例如:mail.example.com)。

安裝及設定 Postfix

# 適用於 Debian/Ubuntu

sudo apt update

sudo apt install postfix mailutils -y



# 適用於 Almalinux/Rocky/Cloudlinux/EL

# 檢查基於 RPM 的發行版以確認

# 如果已安裝 Postfix

rpm -qa | grep postfix

# 如果未安裝,請執行以下指令來安裝 Postfix

sudo dnf install postfix



安裝 Postfix 後,你可以啟動服務,並確保伺服器重新啟動後它也會自動啟動:

sudo systemctl start postfix

sudo systemctl enable postfix

然後,你可以設定此服務。服務所需的所有選項都位於 /etc/postfix 目錄中,而主要設定檔為 /etc/postfix/main.cf

執行sudo nano /etc/postfix/main.cf指令以開始編輯主要設定檔,並加入或更新以下各行:

inet_interfaces = all

# myhostname 用於宣告郵件伺服器的主機名稱

myhostname = mail.example.com

# mydomain 用於宣告實際處理電子郵件的網域

domain = example.com

# mail_spool_directory 用於宣告放置郵箱檔案的目錄

mail_spool_directory = /var/mail

myorigin = /etc/mailname

mydestination = $myhostname, localhost.$mydomain, localhost

relayhost =

inet_protocols = all

smtp_banner = $myhostname ESMTP



重新啟動 Postfix 以套用變更:

sudo systemctl restart postfix



測試傳送郵件:

echo "Test message" | mail -s "Test Email" user@recipient.com

安裝及設定 Exim 4

# 適用於 Ubuntu/Debian

sudo apt update

sudo apt install exim4 -y



以下指令會顯示一個用於設定該軟件的精靈式使用者介面。它讓使用者決定 Exim 是否需要將設定拆分到多個檔案中,或儲存在單一檔案內:

sudo dpkg-reconfigure exim4-config

如果使用第一個選項,設定將儲存在 /etc/exim4/conf.d 子目錄中。如果選擇單一設定檔,則會是 /etc/exim4/exim4.conf

完成所有設定後,執行 systemctl restart exim4使變更生效。

編輯 /etc/exim4/update-exim4.conf.conf 以確保:

# dc_local_interfaces 用於宣告你的郵件服務 IP(例如 203.0.113.10)

dc_local_interfaces='203.0.113.10'

# dc_readhost 用於宣告你的系統郵件名稱

dc_readhost='example.com'

# dc_other_hostnames 用於宣告系統主機名稱

dc_other_hostnames='mail.example.com'



重新啟動 Exim 以套用變更:

sudo systemctl restart exim4


執行以下指令以測試電子郵件投遞:

echo "Mail test" | mail -s "Exim Test" user@recipient.com

安裝及設定 Sendmail

# 適用於 Ubuntu/Debian

sudo apt update

sudo apt install sendmail sendmail-bin -y

# 適用於 Almalinux/Cloudlinux/RHEL

yum install sendmail sendmail-cf mailutils


Sendmail 的主要設定檔是 /etc/mail/sendmail.cf。請避免直接編輯此檔案。如需編輯設定,請改為編輯 /etc/mail/sendmail.mc 檔案,備份原始設定檔,並使用以下其中一種方式來產生新的設定檔:

1) 使用隨附的 makefile /etc/mail 來建立新的設定:

make all -C /etc/mail/

 

如有需要,/etc/mail 中所有已產生的檔案都會重新產生。

2) 或者,你可以使用 m4巨集處理器來建立新的 /etc/mail/sendmail.cf。預設情況下不會安裝 m4巨集處理器。在使用它來建立 /etc/mail/sendmail.cf 之前,請以 root 身分安裝 m4套件:

# 適用於 Almalinux/Cloudlinux/RHEL

yum install m4


# 適用於 Ubuntu/Debian

apt install m4


以下 Sendmail 設定檔位於 /etc/mail/目錄中:

  • access- 指定哪些系統可以使用 Sendmail 傳送外寄郵件

  • domaintable- 網域名稱對應

  • local-host-names - 伺服器主機的別名

  • mailertable- 覆寫特定網域路由的指示

  • virtusertable- 指定網域專用的別名形式,允許在此機器上託管多個虛擬網域。


以下是如何編輯設定檔的範例:

# 編輯伺服器主機別名:

echo "mail.example.com" > /etc/mail/local-host-names


# 透過編輯 /etc/mail/sendmail.mc 綁定至 Mail IP:
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Addr=203.0.113.10')dnl


# 重新建立設定檔:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


# 測試:

echo "Hello from Sendmail" | mail -s "Sendmail test" user@recipient.com

上述多個設定檔必須先將其資訊儲存到資料庫檔案中,變更才會生效。若要套用在設定檔中所作的任何變更,請以 root 身分執行 makemap hash /etc/mail/<name> < /etc/mail/<name>指令。此處的 <name> 代表要更新的設定名稱。

執行 systemctl restart sendmail 指令以重新啟動 Sendmail 程序。

必須提供有效的電郵地址