Skip to main content

Email

Email 相關的設定筆記,下參數的原因

MX record

寄件伺服器查詢收件人的網域名要寄到哪台收件伺服器

kuni93.moe. 43200 IN MX 10 in1-smtp.messagingengine.com.
kuni93.moe. 43200 IN MX 20 in2-smtp.messagingengine.com.
  • TTL: 不會頻繁變動,設定 12 小時,當有變更計畫時應提前縮短 TTL 再變更
  • Type: 就 MX
  • Priority: 有 10, 20 兩台,數字小的優先,通常為了 High availability 會有複數伺服器
  • Value: 使用 Fastmail 收件,所以指向 他們提供 的伺服器

SPF record

收件伺服器依照 smtp.MailFrom 的網域名查詢 SPF record,驗證 Email 寄件伺服器 IP 是否在清單中

  kuni93.moe. 43200 IN TXT "v=spf1 include:spf.messagingengine.com -all"
*.kuni93.moe. 43200 IN TXT "v=spf1 -all"
  • TTL: 不會頻繁變動,設定 12 小時,當有變更計畫時應提前縮短 TTL 再變更
  • Type: 使用 TXT,透過 Value 開頭的 v=spf1 來識別,注意不要把其他 TXT type record (e.g. google-site-verification) 混在同一筆
  • Value:
    • include: 表示引入該網域名的 SPF record,使用 Fastmail 寄件,所以引入 他們提供 的 SPF record
    • 最後加上 -all 表示除前項之外其餘全部 (all) 不予通過驗證 (-)
    • 不會用子網域寄件,所以都加上 v=spf1 -all 即沒有任何 IP 可以通過驗證,防止鑽漏洞

DKIM record

收件伺服器依照網域名 + Selector 查詢公鑰,用於解密、驗證 Email 標頭上數位簽章的來源及完整性

fm1._domainkey.kuni93.moe. 43200 IN CNAME fm1.kuni93.moe.dkim.fmhosted.com.
fm2._domainkey.kuni93.moe. 43200 IN CNAME fm2.kuni93.moe.dkim.fmhosted.com.
fm3._domainkey.kuni93.moe. 43200 IN CNAME fm3.kuni93.moe.dkim.fmhosted.com.

長話短說,照 Email provider 給的設定就好。
DKIM 公鑰發布在 <selector>._domainkey.<domainname> record 上,讓收件伺服器查詢。使用 Fastmail 寄件,所以引入 他們提供 的 DKIM record

DMARC record

收件伺服器依照 DMARC record 上的規則,對 SPF, DKIM 驗證結果照你指定的方式處理 Email

_dmarc.kuni93.moe. 43200 IN TXT "v=DMARC1; p=reject; sp=reject; pct=100; aspf=s; adkim=s; fo=1; ruf=mailto:postmaster@kuni93.moe; rua=mailto:postmaster@kuni93.moe,mailto:c67b0bf7e7984a10946473a559cddf51@dmarc-reports.cloudflare.net"

DMARC record 放在 _dmarc.<domainname>收件伺服器查詢。若有子網域可以單獨設定在 _dmarc.<subdomain>.<domainname> 若未設定則會往上一層 (也就是回到 _dmarc.<domainname>) 找
只要 SPF alignment 或 DKIM alignment 任一驗證結果通過,即 DAMRC alignment 通過

  • TTL: 不會頻繁變動,設定 12 小時,當有變更計畫時應提前縮短 TTL 再變更
  • Type: 使用 TXT,透過 Value 開頭的 v=DMARC1 來識別,除此之外 _dmarc.<domainname> 盡量不要有其他 DNS record
  • Value:
    • p=reject 退件未通過驗證的 Email
    • sp=reject 子網域退件未通過驗證的 Email
    • pct=100 全部 (100%) Email 都套用 DMARC 規則
    • aspf=s 嚴格檢查 Email smtp.MailFromheader.From 要完全相同
    • adkim=s 嚴格檢查 Email DKIM signature d=header.From 要完全相同
    • fo=1 當 SPF、DKIM、DAMRC alignment 任一失敗發生時傳送失敗報告
    • ruf=... 收失敗報告的信箱,但不是每個收件伺服器都會傳送失敗報告
    • rua=... 收彙整報告的信箱,大多收件伺服器都會寄彙整報告,這裡除了自己的信箱也會另寄一份到第三方服務 Cloudflare