[Day 9] Email Service (二)

erichung0404
2024-08-09 21:50:38

前篇介紹了 Email 存取的 Protocols: SMTP, POP3, IMAP, 也簡單講了其運作方式和特點

功能面上已經沒問題, 可以收發信了~
但是就像前面所說, 要如何 "讓收件人能收到信件" 就是一個問題了
所以今天來快速講一下要注意什麼

電子郵件服務供應商 (Email Service Provider, ESP)

電子郵件服務供應商 像是 Gmail, Yahoo Mail, Office365 等等是如何決定 寄件人 是 垃圾信, 廣告信 還是 釣魚信 呢?

通常大型 ESP 都會提供手冊說明寄件的規範, 比如 Gmail 的 Email Sender Guideline

每家 ESP 的規範大同小異, 故這邊簡單介紹常見的問題 , 以及如何解決

IP 地址名聲

一種方式是檢查伺服器 IP 位置的 "名聲" (Reputation), 想知道自己 IP 的名聲可以用以下工具查詢

MXToolbox

Sender Score

Spamhaus

這邊只列出幾種適合 獨立開發者 使用的服務 (免費取向XD), 企業級由於不了解就不另外列出了, 有個概念就好

太多垃圾信

如果太多人透過我們的 伺服器 發送垃圾信件 (被檢舉, 主題或內文包含行銷文字, 機器學習判斷 等等)
我們的 IP 名聲就會下降, 造成透過我們 伺服器 寄送的信件都被視為 垃圾信 囧

短時間發送大量信件

比如以 Gmail 的 規範 來說, 如果我們伺服器一天寄送超過 5,000 封郵件到 Gmail, 就需要在 信件抬頭 加上額外的驗證機制, 比如

Sender Policy Framework (SPF)

DomainKeys Identified Mail (DKIM)

Domain-based Message Authentication (DMARC)

否則可能被視為釣魚信, 有興趣請自行查閱

退信報告 (Bounce Report)

當我們 伺服器 寄送太多信件到無效的地址導致信件被拒收, 也會造成我們的名聲下降
並且, 某些國家有法規要求避免寄信到無效的地址, 比如美國的 CAN-SPAM 法案

好煩噢, 要怎麼解決啊?

由於是我們 新架的電子郵件伺服器, 就很容易被這些供應商歸類為可疑信件
那麼該如何解決呢?
歸根結底就是因為 "供應商無法信任我們的 伺服器 安全性", 換句話說, 就是這些供應商 "不認識我們的伺服器"

所以, 我們可以用以下方式讓這些 供應商 認識我們~

專用 IP

我們可以和 ISP, ESP 等申請專用 IP, 就可以直接使用, 不用養一個全新的 IP
並且因為是專用 IP, 就不會受到其他使用者影響

"養" 伺服器 IP

和大家在 PTT 常說的 "養帳號" 有點像, 為了建立良好的 伺服器 IP 聲譽, 新 IP 需要慢慢累積足夠的名聲
根據 Amazon SES Warming up dedicated IP addresses (standard) 的介紹, 一般新的 IP 位置只要保持乖寶寶 2 ~ 6 週即可 (未被標示垃圾信件, 釣魚信等)

退信報告 (Bounce Report)

退信報告是指透過我們 伺服器 寄出的信件, 沒有成功抵達收件人信箱, 或是被檢舉為垃圾信等, 分為 永久退信 (Hard Bounce) 和 暫時退信 (Soft Bounce)

Hard Bounce

被 ISP 拒絕, 可能是因為

收件地址不存在

收件地址域名過期

被收件人拒收

所以遇到 Hard Bounce 的話, 最好把該無效地址清掉, 避免再次寄信影響生育

Soft Bounce

可能原因如下

收件人信箱滿了

信件大小超過收件人 伺服器 限制

就需要一段時間後再重寄一次

Reference

MXToolbox

Sender Score

Spamhaus

Email Deliverability Best Practices Guide

Best practices for sending email using Amazon SES

CAN-SPAM

Warming up dedicated IP addresses (standard)