Update(2011/5): 推薦 Amazon SES 服務
Update(2010/5): So You’d Like to Send Some Email (Through Code) 也可以一看
Update(2011/7): 推薦 Postmark,也有 Rails plugin。
在眾多客戶需求中,我最害怕的其中一條”順便”要做的功能就是,在後台可以寄信給”全部的”使用者。
寄 “email” 而已,不是非常簡單嗎?
寄給幾個人是很簡單,但是要寄給”一群”人,那就不是件簡單的事情了,在這 spam 肆虐的年頭, 信寄出去不一定就能順利到達使用者的收件夾。
Engine Yard 的這兩篇 How To Ensure Your Email Gets Delivered 和 Making Sure Your Email Gets Delivered 點出了寄 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 的工具來判讀是否是垃圾信,而你也應該用這類的工作檢查你寄出去的信件。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 服務商會先檢查寄件人的地址是正確的,才會收信。
接下來麻煩的是,如果你終究還是不小心被列成黑名單,該怎麼辦? 這篇文章也列出一些常見的原因。
Anyway,我的結論是,還是交給專業的來吧~ 自己架設/管理 email server 不但辛苦又會被 blocked。如果信件量一天低於 500 封,我會建議採用免錢 Gmail 來寄信;超過的話,則有一些第三方服務可以採用,例如 Amazon SES、Sendgrid 或 Authsmtp。 如果需要比較多的行銷功能,則可以考慮 Madmimi、Campaignmonitor 或 Mailchimp 等服務。
BTW,既然提到了 Campaign Monitor,如果你有心做 Email marketing,他們家有不少值得一讀的資源,例如 Guide to CSS support in email clients 就十分有用。
收獲良多 …感恩
不過不建議使用gmail,它的filter太強了,之前有計畫做一個分散式Gmail pool,最後還是選擇放棄。
最近正在煩惱公司 send edm 問題呢, 很有用, 謝謝嚕~
不好意思
能不能特別介紹一下
mailchimp這家公司呢?因為我看很多網站提到他
但是看起來發信不便宜耶
謝謝
您好!
我想請問一下,關於大量發送郵件的部分,由於我們是發送user訂閱電子報的服務,需要每天發送大量的郵件給user,但是因為大量發送的關係會容易被user所使用的mail服務視為黑名單,以至於無法在正確的時間發送給user,想請問一下關於我麼需求是否適用於以上你介紹的幾家的mail server部分呢? 如果方便可以留你的電話或mail跟您詢問嗎?
補充說明一下本文提到的這二家公司的服務:
1. Amazon SES:
這個月剛開放了 SMTP 的服務,但是最大的問題 “退信處理” 至今仍無較好的方式。(論壇上官方人員都有出面說明正在努力中)
簡單的說: 如果退信超過一定比例 SES 就會自動停止服務。但是能不能用 API 查到哪些 Adress 是被退信的呢? 答案是不行,目前只能透過”即時”的退信回報處理。
再簡單點說: SES “目前” 比較適用於「100%正確名單」的發送,未經驗證的名單就別想了。
註:美國有一些第三方服務在協助處理 SES 的退信名單,效果如何沒用過不便多作評論,可以去這些廠商的網站/ Twitter 上看看。
2. Postmark:
只適用於「通知信」,其它種類的信件 (包含 EDM 等行銷郵件) 皆不在 Postmark 的服務範圍內。
詳見官方說明:
postmarkapp.com/terms-of-service
我們公司有一個CRM軟件可以發送大量EMAIL:
1) email blast function (with HTML editor) on searched contact list
2) ONE-STEP email promotion
3) Create more sales opportunities
4) Keep records of those who have opened your e-mails
5) Automatic processing of undelivered e-mail addresses
6) Send out by email according to customer preferences
Mail Service 一般分两种:transactional & marketing.
Marketing的选择有:
Mailchimp
Madmimi
Campaign Monitor
Transactional的选择有:
Amazon SES
Mailgun (backed by Rackspace)
Mandrill (from Mailchimp)
Sendcloud (中国大陆,backed by Sohu)
另外Sendgrid同时提供以上两类服务。
口碑方面,EDM的话Mailchimp是最广为Startup和独立开发者使用,Campaign Monitor价格较高大型企业用的较多。Transactional的话,Mailgun提供丰富的API,计费方式简单,后台管理系统完善,且客服非常不错。Mandrill则刚由Mailchimp推出,鉴于Mailchimp一直以来的良好口碑,应该也不错。Sendcloud在中国大陆的邮件抵达率最有保障。
个人经验大抵如此。