如何正確發送(大量) Email 信件
以下資訊是多力哥從網路上搜尋並加以整理的,請不要用來濫發垃圾信!!
- 處理退信
Bonuce mail 是你寄出去的信件,但是因為某些理由(地址不對、對方信箱滿了)而被對方 mail sever 退信,這些 email 你必須要處理。如果你忽略它還一直寄,你就長得蠻像發垃圾信的傢伙,而會被列出黑名單之中。
- 與主要的 Email 服務商設定意見反應機制(Feedback Loop)
Feedback Loop 是一項協助處理當你的 email 被使用者按下 “垃圾信” 的服務。透過主動接觸主要的 Email 服務提供商,去建立用戶意見反應機制。例如 台灣Y!、Yahoo! Complaint Feedback Loop、msn等,減少被寄件者檢舉成垃圾信的次數。
- 建立自已的 email 清單
建立你自己的 mail 清單。如果你的清單是買來的,不但收件人沒有同意要收到你的信件,也會有很高的機會是 bonuce mail。寄出大量的非允許郵件,終究會讓你的 IP 被列出黑名單。標準的作法是,要在使用者註冊後,且他們也確認收到註冊的認證信(透過email上的認證連結),如此便可以確保這個 email 的正確性,而不會變成 bonuce mail。你也應該避免寄出跟你服務無關的email,減少被檢舉成垃圾信的機會。
- 不要使用 100% 以圖片為主的內容
減少使用圖片,像 Gmail 預設就不會讀取圖片,重要的資訊使用圖片可能會讓使用者預設就看不到。充滿圖片的的 email 也容易判讀成垃圾信。
*圖片放置的位置最好是同網域內 - 使用垃圾信判讀工作測試
收信的 mail server 通常會使用如 Spam Assassin 的工具來判讀是否是垃圾信,而你也應該用這類的工作檢查你寄出去的信件。http://www.brandonchecketts.com/emailtest.php 是一個線上的檢查工作,如果你的分數太低,顯然很可能被判讀成 spam。至於為什麼分數低,可以參考這篇文章。
- 驗證 HTML
如果你寄的是 HTML 格式,你應該檢查 HTML 格式是否正確。一封畸形的信件也容易變成 spam。
- 模擬測試終端使用者環境
使用不同 email clients 實際測試,例如 litmusapp.com 這個工具。不同的 client 可能會顯示不同的結果。
- 專屬 IP
是否有專屬的 IP。如果你的 email sever 是跟人共用的,很可能別人被 spam 了,跟著害到你被列入黑名單。
- 設定 SPF Validation
SPF (Sender Policy Framework) 是一項 e-mail 協定來確認 return-path address 的正確性,用以防止垃圾信件。設定 SPF 可以改進你的信件發送成功率,特別是 hotmail(MSN)。
- 設定 Domain Keys Verification
Domain Keys 驗證是另一種防止垃圾信件的協定。
- 設定 Reverse DNS 反查
設定反向查詢的 DNS 記錄,如果你寄信的 IP 無法反查,可能根本就寄不到。
- 驗證寄信者地址
你的寄信人 email 位址也要是正確存在的。許多 email 服務商會先檢查寄件人的地址是正確的,才會收信。
1.向ISP提出申請:
通常在發送電子郵件時,可以分為兩種,一種是透過特定的 Mail Server 來 Relay 發送你的郵件,一種就是自行架設Mail Server來發送郵件,以Hinet來說,無論是那一種,你都得透過申請才「比較」有機會能夠正常發送大量的電子報,或是非垃圾信的郵件。為什麼我會用「比較」二字呢?因為申請的部分不代表你就一定能夠正常發送,如果是牴觸到Hinet的郵件發送政策的設定,在容許的狀況下或許會通融讓你發送,不然就是你打去申告無法正常發送的同時,對方會再跟你告知應該如何配合,因此,這應該只能算是一種先禮後兵的發送方式。2.提供完整的標頭資訊:
完整的標頭(Header)資訊是指,因為透過某些發送電子郵件的軟體( 例:Phpmailer、Phplist...等),其實只需要少數必要的郵件標頭即可,對於某些Mail Server來說,愈是完整的標頭(例:退信位址...),所能夠取得的積分愈高,也愈不容易被擋下而無法寄送到使用者手中。3.提出IP反解申請:
其實 IP 反解的動作(DNS是用IP查Domain,反解就是Domain反查IP),原則上是用在自行架設 Mail Server時比較有意義,因為垃圾信的氾濫,現在有些Mail Server會檢查寄發郵件的正、反解是否正確,所以必要時可以申請IP反解,基本上這部分是跟 ISP申請(Hinet),不是你自己想要設定就可以設,所以還是得跟ISP溝通一下。4.透過其它認證:
除了上述一般的處理方式之外,還有許多第三方的認證方式能夠提高郵件的寄送成功率,例:SPF( Sender Policy Framework )、Domainkeys或SpamAssassin...等,這些也是有被不少Mail Server所認可的加強授權方式(例:Google Mail 也建議),如果SPF設定有疑問的話,可以透過下列兩個網站來協助設定:OpenSPF.org。5.拉長郵件寄送的間隔時間:
除了設定值之外,有些Mail Server會針對信件傳送的頻率來做為偵測的基準之一,所以在寄送大量郵件時,千萬不要針對同一個郵件伺服器短時間內寄送大量郵件,通常這種信件會以非常快的速度被對方的郵件伺服器認定為垃圾信件,所以最好在寄送時能夠穿插各個郵件伺服器的名單。再來,就是能夠延長每次寄送郵件的間隔時間,不要一口氣同時寄發大量信件出去,不然就算對方Mail Server沒有把你濾掉,你可能都得要擔心自己的ISP是否會發信來「關注」。
郵件是否進垃圾桶,是由許多因素造成:1.發信機來源2.發送的速度與頻率3.收件者的篩選條件4.客戶收信後對該信的行為5.信件的主旨及內容6.寄件者沒有一個系統可以百分之百進收件夾,但是我們可以確保許可式名單及該收件者存在,進到該郵件信箱成功率最高.我們雲端ASP服務有數十台發信機進行派發,並且郵件內容也經過 編碼 , HTML內容最佳化,這些程序已經是可以提高進收件夾的機率.而為何要設定寄件者顯示?是因為在客戶收信行為中,客戶認為你是重要信件,便會加回到收件夾或納入非垃圾郵件.盡量不要一直更換寄件人(顯示名稱及寄件人EmailAddress).之後針對於該寄件者就容易進到收件信箱.(Gmail會自己進行計分)每封信的封包可設定亂數發送信件的時候,可以多個信箱作為發送信箱,而將自己常用的信箱 作為回復信箱。什麼是發送線程?
發送線程是指同時可並發郵件數,可以這樣理解:當發送線程設置為100時,相當於用100 台電腦同時發送郵件。發送線程數越大,發送速度肯定就越快。
但使用時必須根據你的上網帶寬進行設置,如設置數過大,超過你的上網數據傳輸能力,電腦將會提示錯誤、藍屏或當機。但也不能盲目加大發送線程,有的服務器會限制同一時間來自同一個IP位址的線程訪問數量,如果超過服務器規定的線程數,即使連接到了服務器,但服務器也不會有響應,當然也不會發送出郵件。
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%投遞與避開過濾是不可能的。
來自雅虎的建議:網路管理人員需定期執行下列檢查
1.若貴單位有發行電子報或類似郵件,請於該信件內提供【退訂鏈結】的功能;以避免Yahoo 奇摩信箱使用者不想訂閱或再讀取時,直接點選〔這是垃圾信〕,進而影響到貴單位的寄信品質與企業形象。
2.請定期清理會員資料庫,將寄不到的E-Mail Address(如:不存在的帳號)移除更新;例如發送類似會員訊息等郵件時,請確認郵寄名單的正確性。重複大量郵寄錯誤的E-Mail,容易被系統判斷為SPAM廣告商在測試帳號。
3.建議貴單位可以把會員通知信、認證信等重要通知信件,與一般電子報或宣傳信件在郵件伺服器上分開傳送,避免影響重要會員的收信權益。
4.請定期檢測是否有在某一時段大量發出信件至Yahoo 奇摩,小心防範避免公司IP中毒;或被有心人士盜用伺服器當跳板來濫發信件。
發表評論
想要留言嗎?歡迎歡迎!