原則上,在 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 來管理