繼上年YAHOO.COM.CN個Outdated Bogon BGP 事件, 同YAHOO的 technical support 交手以後. 今年又要面對 YAHOO.COM 的postmaster.
因為見到有幾封十幾MB的郵件在mail server loop 了很久,才發現 send 到 yahoo.com 經常發生drop connection 的問題.
大郵件發送到YAHOO.COM會無原因地被對方斷開。由於沒有 SMTP Status code*1,E Mail server 會即時重試另一MX*2。 YAHOO.COM 的DNS記錄總共有 8個 MX RECORD。如事者,一封20MB 的電郵每次會傳到YAHOO.COM 的 8個 MX IP,每個IP傳20MB資料。
我地Server 每半小時重試一次,24小時不能成功遞送才會放棄。
即是寄一封20MB的信件到YAHOO.COM會花了20MB x 8 x 2 x 24 = 7.68GB的bandwidth。平均全日0.7Mbps (7680MB * 8bit / 86400sec).
以Singtel 去海外每Mbps每月約$1,000計算, 一封信花了$1,000 * 0.7 / 30 = $23.
*1 Enhanced Mail System Status Codes - rfc3463
*2 MX = Mail Exchange - rfc1035
市佔率很大的spamassassin 其中一條rule在2010 出現問題.
由於這條是Default rule, 很多Server都受影響.
名稱是FH_DATE_PAST_20XX, 看來應該是2006加入的. 原意是日期大於2010年的就加3.2 到3.4分. 以防止有人用將來的日期Broadcast Spam.
理論上sa update會自動下載修補版本. 如果無就要自己手改了.
##{ FH_DATE_PAST_20XX
header FH_DATE_PAST_20XX Date =~ /20[1-9][0-9]/ [if-unset: 2006]
describe FH_DATE_PAST_20XX The date is grossly in the future.
##} FH_DATE_PAST_20XX
改為
##{ FH_DATE_PAST_20XX
header FH_DATE_PAST_20XX Date =~ /20[2-9][0-9]/ [if-unset: 2006]
describe FH_DATE_PAST_20XX The date is grossly in the future.
##} FH_DATE_PAST_20XX
又或Disable成條RULE
score FH_DATE_PAST_20XX 0.0
Spamassassin bug list
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6269
SpamAssassin Rule: FH_DATE_PAST_20XX
http://wiki.apache.org/spamassassin/Rules/FH_DATE_PAST_20XX