已經架設 5-6 年了,之前一直很穩定
寄國外客戶的信件往來都正常
但這二個星期以來,業務部一直反應國外客戶常常收不到
有去查詢一下國外郵件黑名單,查了很多不同查詢主機都是白名單
反解設定部份早在多年前也有設定好了
但這陣有時寄出去退件回來顯示: 550 MFE: Message detected as spam
這2天為了這問題,也將主機 ip 換了一組跟設反解,但還是一樣問題
是否大大能幫忙分析什麼問題,能否解決呢
以 postfix 的垃圾郵件阻擋規則來說,反推回去要如何才能不被當垃圾信:
● MUA 發信端軟體,在寄信時要發出 HELO 信號表明主機網域身份。沒有 HELO 信號的會被直接丟棄。
● 寄信人與收信人,皆需有 FQDN (fully qualified domain name,完整網域名稱)
就是 DNS 正解要設定正確,mail.xxxxx.com 什麼的,要能查到這台主機的A紀錄與MX紀錄。
正解 比 反解 更重要。在垃圾郵件過濾的規則順序中,都會優化,比對較快的規則會放前面。一旦規則命中就不會繼續往下比對,直接做出處理。
查詢 FQDN 一般會優先於查詢反解。FQDN 不對就直接丟棄郵件或退信了,不在做之下的規則比對。
● 反解
反解不僅是要可以反解出 IP,IP 還需要與 DNS 中 mail 主機正解 一致。
● SMTP 或轉遞主機,最好與 mail 主機同一台。
有些垃圾郵件過濾軟體,會檢查偽裝信。就是寄信人的主機資料,與實際發信主機不符。
例如:寄信人 OOXX@gmail.com 什麼的,但那封信明明就不是來自 gmail 主機,即偽裝信。
不是刻意偽裝的,一樣會被視為偽裝信。軟體並不能判別使用者企圖,只查明是不是偽裝,如果是偽裝的就丟棄。
比如:用 msa.hinet.net 寄信,但寄信人欄位的主機名稱,明明就不是 msa.hinet.net,這樣有可能被當偽裝信丟棄。
● 主機設定中,第一次寄失敗,一定要自動重寄,至少一次
因為有一種垃圾郵件過濾軟體(外掛 postgrey 曙光 郵件過濾軟體),它的運作原理是:不論誰寄來,先扣下來放暫存,等一段時間,若對方無重寄,則判斷為:單發型郵件,丟到垃圾桶。(垃圾郵件/廣告郵件 通常是單發的,寄後不理)
大部分的 MUA 寄信軟體,如果第一次寄失敗,隔一段時間後,會重寄(可設定時間、次數)。
● 重寄的間隔時間,不宜過短,至少30秒或一分鐘之類的。不能 1秒的。
因為有些主機會設 DoS洪水攻擊 防護,防止有人惡意攻擊郵件主機,利用大量正常信件,來灌爆郵件主機。
短時間內連續發送,會被視為惡意攻擊,並被防火牆擋下來。
● 線上的黑名單資料庫
這條規則通常放最後,或檢查偽裝信前面。
這部份是寄信端無法控制的,如果被加入黑名單,只能去信該單位要求解除
或者給 mail 主機換個名稱(Domain Name)+ IP。
單換 IP 沒用的,因為黑名單資料,主要是 主機名稱+網域名稱,其次才是 IP。
譬如說:本來是 mail.xxxx.com,主機名稱可改成 mail2.xxxx.com 之類的。不過實行上比較困難,因為主機名稱通常用很久的,對外給人的聯絡資料,都是那個名稱,突然更換,可能會導致別人聯絡不到。
● 內部往外發的郵件,最好也要過濾
通常垃圾郵件過濾,只會過濾 外部 to 內部(就是別人寄來的郵件)
但其實 內部 to 外部(自己人寄給別人的),也應該過濾。
因為員工電腦也許中毒什麼的,亂發垃圾信。結果被人家加入黑名單。
如果公司內部電腦數量很多,內部 to 外部 最好也套一下規則,過濾一下。
SMTP error from remote server after transfer of mail text:
host ***.****.***[***.***.***.****]:
550 MFE: Message detected as spam
host後面通常就是對方套用的Anti-Spam服務(例如郵件防火牆代管),找到來源後,再去對方的資料庫查詢哪些 ip or domain是被列入黑名單的,HiNet郵件主機的IP位址可以參考:郵件主機及IP位址一覽表
內文搜尋

X