懶得看原理可以直接跳到教學。
網域、DNS 與信箱的關係#
免費的 Gmail 帳號只是一個信箱,它既不是 example.com 的郵件主機,也管不到 example.com 的 DNS。想用 you@example.com 收發信,等於是繞著這個帳號、在網域的 DNS 上補幾筆紀錄,再接上第三方服務。
一封信會不會進到你的 Gmail、寄出去會不會被當成垃圾信,都由 DNS 紀錄決定:
| 目的 | DNS 紀錄 | 內容由誰提供 |
|---|---|---|
決定誰負責收 example.com 的信 | MX | 轉發服務 |
宣告誰能代表 example.com 寄信 | TXT(SPF,根網域) | 你 / 寄信服務 |
| 幫寄出的信加上可驗證的簽章 | TXT(DKIM,選擇器._domainkey) | 寄信服務產生金鑰 |
| 驗證失敗時要收件方怎麼處理 | TXT(DMARC,_dmarc.example.com) | 你 |
整體資料流:
1Receiving (forwarding)
2 sender ---> MX (example.com) ---> forwarding service ---> you@gmail.com
3
4Sending ("send mail as")
5 Gmail compose, From: you@example.com ---> smtp.gmail.com ---> recipient收信與寄信是兩條獨立的路,要分開設定;但寄信的驗證信會走收信這條路,所以先做收信。
【收信】把網域信箱轉發到 Gmail#
免費 Gmail 不能當 MX 目標,收信要靠「轉發服務」:
example.com收下信,再原封不動轉寄到你的 Gmail。
首先,在你網域 Name Server 的管理介面上,找到轉發信箱相關的功能並設定。
以 Cloudflare 為例,位置在左側 Build 區域的 Compute > Email Service > Email Routing。
在該頁面中點選右上角「Onboard Domain」,並在 Zone 欄位選擇你的 Domain 後按 Continue:
接著 Cloudflare 會自動建置好要給信箱使用的 DNS records,直接按下 Activate 即可:
接著到「Destination Address」去設定要轉發的目的地:
輸入信箱並按下 Add Address 後,Cloudflare 會寄信到該信箱要求驗證,記得去收信。
等到轉發信箱顯示 Verified 狀態後,便可以在 Routing rules 頁面設定轉發規則。
可以很暴力的直接把所有寄送到該網域的信都寄去你的 Gmail,或者設定轉發規則:
Email pattern就是給他人寄信用的目標位置Action選擇「Send to an email」Destination則是轉發的目標信箱,也就是最後要收信的 Gmail 信箱
p.s. 雖然預設會自動關閉,但還是注意一下設定完規則後,
Routing rule區塊的「Catch-all」是否呈現Disabled狀態,若為Enabled則可能會搶到規則,應予以關閉。
接著便可以寄信到你所設定的自訂網域 Email pattern,然後到目標 Gmail 信箱去察看是否有收到信件。
【寄信】在 Gmail 以網域身分寄出#
Gmail 的「以其他地址寄信」讓你可以在同個帳號內切換不同的寄件者身分,透過
smtp.gmail.com送出。
先開啟該 Gmail 的 Google 帳號兩步驟驗證,並產生一組應用程式密碼。
創建應用程式名稱,並保留密碼。
名稱可以隨意,推薦設為網域名稱,未來比較能一眼看出為該網域所使用。
用電腦開啟 Gmail 後,右上角的齒輪按鈕點開,點擊「查看所有設定」。
選擇分頁「帳戶和匯入」,在「選擇寄信地址」區塊點擊「新增另一個電子郵件地址」。
名稱就填該信箱要讓人看到的名稱,地址填你網域那邊的 Email pattern (上述例子來說為 you@example.com),「視為別名」則建議不勾選。
關於「視為別名」勾選與否的差別,官方是這麼解釋的:
| 行為 | 勾選 | 不勾選 |
|---|---|---|
| 寄到另一個地址的信顯示在這個 Gmail 收件匣 | 是 | 否 |
| 你從另一個地址寄出的信顯示在「寄件備份」 | 是 | 是 |
| 回覆你透過另一個地址寄送的信時,「收件者」欄填入 | 原信「收件者」的地址 | 寄件者的地址 |
| 回覆你透過群組別名寄送的信時,「收件者」欄填入 | 原信「收件者」的地址 | 群組地址 |
SMTP 伺服器填 smtp.gmail.com;
連接埠 587、SSL;
帳號是你的完整 Gmail 地址;
密碼則是填剛才創建的 應用程式密碼 (記得去除空格)。

Google 會寄一封驗證信到你所設定的自訂網域信箱,也就是上述的 you@example.com。

由於收信的部分已經先設定好了,所以可以直接到 Gmail 收取該信完成驗證。

切換寄件者身份#
在設定中的「帳戶與匯入」分頁裡,
如果你希望使用預設自訂網域發信,則可以在「選擇寄件地址」中找到自訂網域信箱,並點擊「設為預設值」即可;
或者如果想依照他人寄信所填寫的收件者來自動切換回覆的寄件者,則可以選擇底下「回覆郵件時:」區塊的「來自和郵件傳送地址相同位置的回覆」選項。

當然也可以在寄信時手動調整:
讓寄出的信不進垃圾桶:SPF / DKIM / DMARC#
這三筆 TXT 用來向收件方證明「這封掛著 example.com 的信是被授權的」,少了它們,寄出的信容易被丟進垃圾信匣或直接退回。
- SPF(根網域):列出可代表
example.com寄信的主機。走 Gmail 寄出時實際由 Google 送出,例如v=spf1 include:_spf.google.com include:_spf.mx.cloudflare.net ~all(後者是 Cloudflare 轉發用的,依你的服務調整)。 - DKIM(
選擇器._domainkey.example.com):由寄信服務產生金鑰、你貼進 DNS,寄出的信會帶上用example.com簽的數位簽章。 - DMARC(
_dmarc.example.com):先用v=DMARC1; p=none; rua=mailto:you@example.com觀察報告,確認 SPF 或 DKIM 有對齊到example.com,再收成quarantine或reject。
免費 Gmail 的限制:「以其他地址寄信」送出的信,DKIM 是用 gmail.com 簽的、不是 example.com,DMARC 的對齊過不了。要完全對齊,得改用「能以你網域 DKIM 簽章的外寄 SMTP」(部分轉發服務的付費方案),或直接上 Google Workspace。
以剛剛的範例來說,你可能需要到 Cloudflare 編輯它自動生成的 TXT DNS record,把原本的
1"v=spf1 include:_spf.mx.cloudflare.net ~all"改成
1"v=spf1 include:_spf.google.com include:_spf.mx.cloudflare.net ~all"
或許你會想改用 Google Workspace?#
如果很在意到達率、要多個帳號,或想共用行事曆 / 雲端硬碟,付費的 Google Workspace 更省事,它提供真正的信箱,不需要轉發服務。
MX全部指向 Google。- 在管理主控台產生 DKIM 金鑰,貼進 DNS。
- SPF 用
v=spf1 include:_spf.google.com ~all。
References#
- 《Send emails from a different address or alias》https://support.google.com/mail/answer/22370
- 《Sign in with app passwords》https://support.google.com/accounts/answer/185833
- 《Cloudflare Email Routing》https://developers.cloudflare.com/email-routing/
- 《Help prevent spoofing and spam with DMARC》https://support.google.com/a/answer/2466580
- 《Forward Email》https://forwardemail.net/






