如何限制特定使用者寄信出去的收件人數量?
到iT邦幫忙

ctom2328(iT邦初學者10級)發問:

董事長經常會收到同事的轉寄信而不勝其擾,希望限制同事在轉寄信件時,最多只能寄給5個人。公司的郵件伺服器為Postfix、Proc郵件,請問該如何設定?

twtw(iT邦初學者8級):
如果只針對某帳號,去限制他的單一信件的收件者數量,而不包含其他帳號,Postfix應是沒辦法個別區別。

如果要對所有使用者寄出的信件內容,限制最大的收信者數量,可參閱以下網址:www.postfix.org/resource.htmlwww.postfix.org/postconf.5.html

但在Proc郵件上,就可以針對該員工的帳號,限制一次最多寄給幾個同主機上的帳號。設定如下:
:0
* ^From.*baduser@example\.com
# 限制5個收信者就 6個 @
* ^(To|Cc):.*@.*@.*@.*@.*@.*@
# 狠一點,就直接砍掉該信,
/dev/null
# 善良一點,就通知該信沒被寄送出,
|(formail -rA "X-Loop: postmaster@example.com" \
-I "Precedence: junk" \
-I "From: Admin " \
-I "Subject: Reject your email" ; \
echo "Your mail has too many recipients."; \
echo "It was NOT received." \
)| $SENDmail -oi -t

這樣,就可以限制該帳號寄給同主機帳號的收件者數量。

缺點是如果該名使用改用其他寄件人,就失去效果,另外這個作法也無法限制寄到主機之外的帳號數量,Proc郵件對非本地端的收信者是無效。

ping(iT邦初學者1級):
技術上應該可以解決,但這不是根本的解決之道,應該是主動與使用者溝通,請他減少轉寄給不相關的人才對。

你限制他只能轉寄給5人,假使有天因工作所需,真要寄信給5人以上,權限不就得開了又關?

antijava(iT邦初學者1級):
Postfix可以限制收件者的最多數量,可設成「smtpd_recipient_limit=5」,這是針對所有信件,而非針對特定帳號,而且也無法阻止寄「很多次5個人」的情形。

stellayan(iT邦初學者9級):
可以取出收件人的欄位值,若判斷存在五個以上的「@」,表示收件者超出五個人,就可直接退信。

熱門新聞

Advertisement