原則上,在 CentOS 6.x 之後,系統就預設安裝 Postfix 服務

Postfix 安裝及設定

檢查 postfix 是否安裝:

rpm -qa | grep postfix

安裝 postfix

yum install -y postfix

設定

安裝完成後,需要設定幾個地方,讓收發信件能正常運作

vim /etc/postfix/main.cf
# 網域
mydomain = mydomain.com

# 設定電腦名稱+網域名 (FQDN)
myhostname = mail.mydomain.com

# 設定發信的網域名,作為可接收信件的網域名稱,讓郵件可正常收發
mydestination = $myhostname, localhost.$mydomain, localhost

# 指定 inet_protocols ,預設為 all ,可以切換為ipv4, ipv6
inet_protocols = all

# 信箱容量上限
mailbox_size_limit = 10240000  //10Mb  , 若設定為 0 表示無限制

其中,關於單封信件容量大小,有效管控是有必要的

過大的郵件會導致 server 效能不佳,頻寬也會受到影響

重新啟動 postfix

重新啟動 postfix 及設定為開機自動啟用

service postfix restart

chkconfig postfix on

開啟防火牆

將 port 25 開啟,讓 SMTP 可以對外連線

加入 service

firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-service=pop3
firewall-cmd --reload

帳號認證

預設的 postfix 並沒有身分認證,通常都能直接允許寄信

必須要額外透過SASL 才能套用認證

檢查是否安裝,以及安裝方式

rpm -qa | grep cyrus-sasl

yum install cyrus-sasl

啟動服務

service saslauthd start
chkconfig saslauthd on

在 main.cf 最後一行加上以下內容

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

若同時安裝 sendmail 與 postfix ,該如何處理

如果再 server 環境同時安裝了兩種服務

則可以透過 system-switch-mail 來管理