知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
修改配置檔案
vim /etc/postfix/main.cf inet_interfaces = all mydestination = mydomain = example.com myhostname = mail.example.com mynetworks = 0.0.0.0/0 mynetworks_style = subnet smtpd_reject_unlisted_recipient = no transport_maps = hash:/etc/postfix/transport
轉發配置,設置域名和地址的關係:
vim transport: your.com relay: [10.10.0.1]
生成相應的db檔案
postmap transport
例如當收件人為users@your.com時,postfix會將郵件轉發到指定的伺服器
編輯/etc/postfix/main.cf檔案,在檔案中添加下面一行文字,你可以把它插入到檔案末尾。
sudo vim /etc/postfix/main.cf smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/check_sender_access
然後在/etc/postfix/目錄下創建一個check_sender_access檔案,內容如下
example.com REJECT your.com OK .example.com REJECT .your.com OK user@example.com REJECT
將域名的特定郵箱地址添加到黑名單,也可以將某個二級域名添加到黑名單或白名單,只要在域名前面加上一個小數點就行了。郵箱與域名後面輸入OK表示將這個域名添加到白名單,域名後面添加REJECT表示將這個域名添加到黑名單。
使用postmap命令創建/etc/postfix/sender_checks.db資料庫檔案
postmap /etc/postfix/check_sender_access
最後重新加載Postfix配置檔案
sudo /etc/init.d/postfix reload
Postfix 提供三種收件箱,第一種是Mailbox,第二種是Maildir, 第三種是Unix風格的收件想/var/spool/mail
如你有POP/IMAP服務請使用Mailbox 或者 Maildir。否則僅僅是在 unix上閲讀純文字檔案郵件可以使用/var/spool/mail
郵件投遞是指從你的Postfix伺服器將郵件投到目的地郵件伺服器,即 SMTP對SMTP,而非用戶到的SMTP配置。
配置主要涉及郵件投遞頻率,如果過高,會被退回也可能被封鎖一段時間。
* initial_destination_concurrency:到目標主機的初始化並發連接數。 * default_destination_concurrency_limit:初始化連接後對同一目標主機的最大並發連接數目。 * local_destination_concurrency_limit:控制對同一本地收件人的最大同時投遞的郵件數目。
預設值可以通過 $ postconf | grep local_destination_concurrency_limit 命令查看
initial_destination_concurrency = 5 default_destination_concurrency_limit = 20 local_destination_concurrency_limit = 2
queue_run_delay 配置間隔多長時間重新發送一次deferred隊列的郵件
# postconf | grep queue_run_delay queue_run_delay = 300s
deferred郵件隊列中的生存時間
# postconf | grep maximal_queue_lifetime maximal_queue_lifetime = 5d
隊列尺寸
# postconf | grep qmgr_ qmgr_clog_warn_time = 300s qmgr_daemon_timeout = 1000s qmgr_fudge_factor = 100 qmgr_ipc_timeout = 60s qmgr_message_active_limit = 20000 qmgr_message_recipient_limit = 20000 qmgr_message_recipient_minimum = 10
smtpd_client_connection_count_limit 配置郵件客戶端連結數,例如 Outlook 用戶數量
# postconf | grep smtpd_client_connection_count_limit postscreen_client_connection_count_limit = $smtpd_client_connection_count_limit smtpd_client_connection_count_limit = 50
控制接收郵件頻率
# postconf | grep smtpd_client_connection_rate_limit smtpd_client_connection_rate_limit = 0