各位前輩好
今天我司的董事長對MIS提出一個需求,他說有些人沒事就愛轉寄信件給他,明明很多事情與他不相干,但是很多職員很愛寄信後也寄給董事長;不知道各位前輩們有解決辦法嗎??董事長的需求是針對特定人士,讓他們單一信件要寄出去只能轉寄給5個人
我司的郵件伺服器為 Postfix + procmail
還煩請各位前輩們能解答我的問題 謝謝~~
如果只針對某帳號,限制一封信的收件者數量,
而不對其他帳號有限定的話,
就 postfix 而言應是沒辦法個別區別。
如果要對所有信件有此最大收信者數量的限制的話,
參閱:http://www.postfix.org/resource.html 或
http://www.postfix.org/postconf.5.html
設置有關 _recipient_limit 字樣的參數
所造成缺點,可想而知。
但在 procmail 上就可以針對該員工的帳號,
限制一次最多寄給幾個同主機上的帳號:
<pre class="c" name="code">
:0
* ^From.*baduser@example\.com
# 限制5個收信者就 6個 @
* ^(To|Cc):.*@.*@.*@.*@.*@.*@
# 狠一點就直接砍掉該信
/dev/null
# 善良一點的話就通知該信沒被寄送出
|( formail -rA "X-Loop: postmaster@example.com" \
-I "Precedence: junk" \
-I "From: Admin <devnull@example.com>" \
-I "Subject: Reject your email" ; \
echo "Your mail has too many recipients."; \
echo "It was NOT received." \
) | $SENDMAIL -oi -t
這樣就可以限制該 帳號 的寄給同主機帳號的收件者數量。
缺點是:若該 user 改其 From: 的話,就沒 match 了,
而也不會限制到 寄到 主機之外帳號數量;
因為寄到 主機外的信,是 postfix 的議題,
procmail 對 非local的收信者是無作用的。
說實在,_recipient_limit 字樣的參數有以下這麼多:
default_destination_recipient_limit
default_extra_recipient_limit
default_recipient_limit
extract_recipient_limit
lmtp_destination_recipient_limit
local_destination_recipient_limit
qmgr_message_recipient_limit
relay_destination_recipient_limit
smtp_destination_recipient_limit
smtpd_recipient_limit
transport_destination_recipient_limit
transport_extra_recipient_limit
transport_recipient_limit
virtual_destination_recipient_limit
須細看其解釋及測試,才會知道怎樣的條件情境下,限制收件者的數量。
技術上應該可以
但這不是解決問題的根本
應該是主動與他溝通,請他減少轉寄給不相關的人才對
你限制他轉寄5人,假使有天他真的要寄信給5人以上(都有相關的人)
那你不就得一直幫他開開關關權限,這不是在累死自己嗎?
我覺得有些問題不應一直用技術方面去解決
有時應該用溝通或政策方面來看
第一時間內已經發布命令給所以員工,但...董事長與主管想知道我有沒有辦法去做到...總不能我現在說可以結果做不出來,所以小弟才上來發問看看各位前輩能用什麼方法解決可以讓小弟學習學習 謝謝~~
您的問題無解,無解的原因不是在於技術,而是在於人.
"董事長的需求是針對特定人士,讓他們單一信件要寄出去只能轉寄給5個人."
那我化整為零呢?同一封信每次都轉寄5個人,共轉10次,那我就可以達到同一封信寄給50個人的目的!
有這種動物員的園長,第一時間解決或敷延一下,然後私底下找一個企業文化良好的地方轉行,根據我的遙遠、遙遠的經驗,當你答應次數越來越多,到那個時候你早上洗臉的時候,將不認識鏡子裏面的那個人!
而且這些動物園的園長認為,我要什麼你就給什麼,你什麼事都作的到,下次可能會要求你能不能作一付「 Mind Control」,給公司所有的同事載上!
Postfix 可以限制收件者的最多數量
參考官網說明
關鍵字:default_destination_recipient_limit
But
1.這是針對所有信件而非針對特定帳號
2.如其他大大已提出,此做法仍無法防止寄「很多次5個人」的情形
提供參考
剛剛 Google 了一下
應該是設 smtpd_recipient_limit=5 才對
參考
http://www.postfix.org/postconf.5.html#smtpd_recipient_limit
建議 man procmailex 取出 TO的欄位值,若存在五個以上的@ 表示收件者超出五個人, 直接rejected. try 看看吧
正如其他大大都提出的觀念
縱使限制了,那麼我就多次發送您又能奈我何?
或者我發給群組那麼您原先用程式在收件人上的限制可能就沒用了
再怎麼限制都會有漏洞與其不便性
您可以跟老闆說,技術上做得到
但是我們會遇到更多的問題與不便性
如果從管理面的角度著手,也許可以收到更大的效果
或者您幫老闆設定郵件的過濾條件
如收件人不是老闆的信件,先移到某資料夾或垃圾桶
這樣老闆就不會有那麼多信要看了
這問題很有意思
是我會跟user說
沒事不要亂寄mail給董事長
基本上 只要董事長不會收到一堆亂七八糟的信件
這個問題就算解決了
或許有人說這是鴕鳥心態
要不然呢
跟董事長說:
「董事長,你從這些不小心寄給你的e-mail,也可以掌握到一些公司(更真實)的狀況,是『不用走動的走動式管理』,稱為『e-mail管理法』……」
只是,不知道真的這麼講之後會不會……