信件被當成垃圾信的原因?

作者:不詳

1. 技術層面的規範:如果來信的各項內容不符合RFC所定義的郵件規範,例如說檔頭格式不對、附件編碼不正確等,就擋信或列入垃圾郵件。

2.名單過濾:使用white list & black list 過濾信件來源,可使用的規則包括寄件信箱、寄件主機IP。可以針對信箱的各個部分(寄件人、寄件主機名稱、寄件domain)來過濾。有些機構提供惡名昭彰的主機列表以及open relay的主機給系統管理者列入黑名單之列(RBL, Realtime Black List),所以只要是在黑名單中的就擋信,在白名單裡的就放行。

3. 延伸技術限制:如寄件主機必須經過反查認證為fqdn合格的主機才能放行、DNS反查必須合乎寄件地址記錄(以上兩項在信件傳送時的溝通協定中也會同時檢查);在HELO表明寄件主機時不得使用收件主機名稱當作寄件主機名稱、SMTP收信時檔頭不得使用收件人信箱作為寄件人信箱等等。這裡並不一定指RFC規定的項目,有可能是管理者自己加的規則。

以上三類的過濾通常在SMTP溝通的時候就會被剔除,就是說直接切斷連線。

但是接下來電子報要面對的關卡才是被當作垃圾信或是大宗郵件的主要原因,要比上述的三類複雜得多。

進到下一關:

4. 系統層次的檢查:

有相當多作法,這裡舉一個最常見的例子–同一封信件在這台主機的收件者不得超過某個數量。所謂的收件者數量並不是信件header的to:所指定的收件信箱(這裡當然也會變成條件之一),而是smtp溝通時所傳送的RCPT TO。有些發信軟體會在信件送出前判斷有那些信件是到同一台主機的,如果信件內容完全相同(檔頭沒有to:),就會只發一封到該主機去,然後把一堆收件人填在rcpt to那邊(詳細的動作有點複雜,但是基本的原理是這樣,你可以去看一支bulk_mailer的程式是如何跟smtp客戶端溝通發信的)

一般的規則是以50封為上限,收件主機有可能把超過十封的通通掃進「大宗郵件夾」你也沒辦法。除非一封一封慢慢發。但是有些收信主機還是可能會檢查同一段時間連線進來的發信主機連線數量….

5.信件內容過濾

不只是關鍵字過濾,廣告信過濾系統如SpamAssassin會將整封信件的結構作檢查,規則有一拖拉庫多到我不想數了…列表在這裡

http://spamassassin.apache.org/tests_3_1_x.html

包括內容是不是都為html格式啦、是不是都是圖片沒有字啦、使用了多少imagemap、有沒有夾帶CSS與javascript、有多少百分比的文字是URL連接、內容有沒有藏著mail to:的link等等,不同的語系還有不同的檢查規則。甚至會依照經驗來歸納計分,請見 http://en.wikipedia.org/wiki/Bayesian_filtering

這裡的每一個檢查如果符合的話就會被加上一個分數,最後的總分如果超過系統管理者的設定就被認定為垃圾信。幸運的話,有些系統會將分數設得極高,所以大部分的垃圾信都會通過(不過這樣乾脆不要過濾算了)遇到比較嚴格的系統,就只能摸摸鼻子了。

結論是:要作到100%投遞與避開過濾是不可能的。

就算你很努力作到了所有程式設計者所應該做的正規信件發信程序,還是至少有三個重點是你無法掌握的:
第一,你不知道會發到什麼樣的主機裡頭去,系統管理者看你不爽,隨時會把你加入到黑名單去,甚至通報全球制裁你;就算成功塞進去了,如果不是Webmail用戶端,你也不知道收件人家裡使用什麼防毒軟體順便的擋了廣告信,你更不知道使用者會用什麼email看信程式來打開信件。從你的電子報系統到使用者的桌面,是一條又長又艱辛的旅程啊。

第二個,是你無法控制電子報製作的人是不是一直強調品味跟技術,如果硬要用一堆圖、硬要加一堆連接而沒有文案、硬要放javascript做mouse over讓按鈕閃來閃去(雖然根本沒用,只有在預覽的時候看得到),那信件的垃圾指數當然會很高。

第三個,如果你的客戶堅持要賣情趣用品、A片、藍色小藥丸、直銷會員資格,那電子報應該就會被當作垃圾信,period.

還是有一些作法,如英文的垃圾信最近很流行用變體字,如o用0代替、l用1代替、把字串切開放在兩個相鄰的table裡面、不斷變換發信主機等等,但是都還是亂槍打鳥,這種作法的格調也實在是不高。

總而言之,我覺得發電子報這件事,實在有夠蠢….寫電子報系統,又辛苦又賺不到錢,還會惹來一堆問題解決不完,發報人被唾棄、實際上的行銷效果也不怎麼樣,唉。