原由

目前已經在 “樹梅派” 上架設了網頁伺服器, MySQL, DNS, 在好奇心的驅使之下, 我也架了郵件伺服器, 其設定複雜之程度遠遠勝過我的好奇心! 盡管如此, 還沒有死心, 已經硬磕三天了, 先記錄一部份 – “郵件中繼” (relayhost), 作為日後參考。個人認為設定一定還有不到位的地方, 如果不做紀錄, 以目前的年紀, 忘的很快, 沒有太多的時間可以再摸索, 其他部分 “DNS record”, 憑證, 郵件加密, 垃圾郵件…相關設定等等, 抽空再補上。經驗是要靠積累的, 但不做紀錄的話是會流失的, 甚至消失!

基本安裝和設定

在樹梅派安裝 “postfix”, “dovecot”, 在Windows 11安裝 “Thunderbird” 做為郵件工具, 以便進行驗證測試, 參考文件如下

個人網路分享器 tplink ax50 的設定,如下

參考 :  埠號 25, 465, 587 的分別

個人郵寄伺服器剛架好之初, 基本上, 收信件功能, 除了阻擋垃圾郵件的設定之外, 不需費太多的心思。我從 Gmail, Hotmail 分別寄出測試信件, 很容易就收到了

發送信件倒是遇到很多問題

未使用 port 587 (中繼), 直接使用 port 25 (smtp)

使用 telnet + helo 命令送信給 Gmail, Gmail 會收到, 但會被直接放進垃圾郵件
使用 Thunderbird 送信給 Gmail, 會被彈回來
使用 telnet + helo 命令送信給 Hotmail, 會被彈回來
使用 Thunderbird 送信給 Hotmail, 會被彈回來

情況如下

看來, 使用SMTP中繼 (port 587) 是免不了了, 於是找 “free SMTP relay” 試試

參考 : 9 Paid and Free SMTP Server Solutions for Marketers and Developers [2022]

其實, 這一些 “free” 的似乎並沒有我想的那麼 “free”! 註冊第一關我就被 ban 掉了, 不接受 Gmail, Hotmail, …等 public mail當帳號, 於是想說用個人剛架好的郵件伺服器帳號試試看, 一樣不接受, 堅持一定要正式公司的email! 試了好幾個 (socketlabs, smtp2go, ….), 都一樣! 真的587 (我白癡, 被 “free” 耍了)!

最後, 還是 “谷歌” 可愛!

不過一開始, 我也弄錯一件事, 直接拿 Gmail的帳號密碼來使用, 似乎又 “傻” 了一小段 [因為根據搜尋都說個人Gmail 能當中繼(relay)], 最後終於發現密碼是要用 “應用程式密碼”

申請Gmail應用程式密碼

申請Gmail應用程式密碼, 以便Gmail 能夠充當 “郵件中繼站” 進行郵件轉寄, 中繼主機名稱為 smpt.gmail.com (不能直接使用個人的Gmail帳戶密碼), 請參考 “如何串接Gmail免費SMTP服務來發送電子郵件提醒?“, 過程如下 :

Google 帳 戶 ○ 關 於 Q 關 於 在 G 。 。 g | e 帳 戶 中 尋 安 全 性 協 助 您 確 保 帳 戶 安 全 的 設 定 和 建 議 0 ' 個 人 資 訊 資 料 和 私 權 安 全 性 使 者 和 分 亨 內 容 付 款 稻 訂 您 有 可 參 考 的 資 安 建 議 安 全 設 定 檢 查 工 具 已 偵 測 到 問 , 建 議 您 採 取 必 要 的 行 動 保 您 的 帳 戶 近 期 的 安 全 性 活 動 應 用 程 式 密 碼 已 設 定 完 成 一 嘗 試 習 申 請 了 兩 次 應 用 程 式 密 碼 已 設 定 完 成 晚 上 1 1 : 14 晚 上 1 1 : 11 • 台 灣 • 台 灣 隱 私 權 定

G009 | e 帳 戶 @ 首 貟 上 次 變 更 時 : 2020 年 4 月 17 日 ○ 關 於 Q 個 人 資 讯 資 料 和 隠 私 權 安 全 性 - 1 使 用 者 和 分 享 內 容 付 款 和 訂 鬩 在 Google 帳 戶 中 搜 尋 密 碼 兩 步 驟 驗 證 應 用 程 式 密 碼 2 我 們 可 用 來 驗 證 您 身 分 的 方 式 己 開 2 組 密 媽 我 們 會 透 過 這 些 方 法 確 認 登 入 帳 戶 的 是 您 本 人 , 或 是 在 帳 戶 出 垷 可 疑 活 動 時 與 您 聯 絡

應 用 程 式 密 碼 您 的 應 程 式 密 碼 上 次 使 時 間 名 稱 建 立 日 期 我 的 [Windows 電 腦 亅 上 的 晚 上 11 : 14 晚 上 11 : 18 丨 件 」 晚 上 11 : 11 raspberrypi 選 取 您 要 產 生 應 用 程 式 密 碼 的 應 用 程 式 和 裝 , 取 應 用 程 , 取 裝 J

應 用 程 式 密 碼 您 的 應 式 密 媽 上 次 使 時 間 名 稱 建 立 日 期 我 的 「 Windows 電 瑙 亅 上 的 晚 上 11 : 14 晚 上 11 : 18 「 件 亅 晚 上 11 : 11 raspberrypi 選 取 您 要 產 生 應 用 程 式 密 碼 的 應 用 程 式 和 裝 , Windows 電 瑙

系 統 產 生 的 應 用 程 式 密 碼 Add your G009 | e account Windows 電 腦 專 用 的 應 用 程 式 密 碼 使 用 方 式 開 啟 丨 郵 件 亅 應 用 程 式 , 2 」 開 啟 轂 定 亅 選 單 - 3 依 序 選 取 丨 帳 冃 > 您 的 Google 帳 戶 - 將 ! 密 碼 替 換 成 上 方 的 16 字 元 密 碼 · 這 個 應 用 程 式 密 碼 就 如 同 您 平 常 使 用 的 密 碼 , 可 授 予 完 整 的 Google 帳 戶 存 取 權 限 - 您 不 需 要 記 住 這 組 密 碼 , 因 此 , 請 勿 將 密 碼 寫 下 或 透 露 給 田 可 人 知 道 · 瞭 解 詳 情

在應用程式密碼產出之後, 於個人郵件伺服器 (樹梅派), 修改 /etc/postfix/main.cf , 加入

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

詳細作法, 參考 “在 Ubuntu 18.04 透過 postfix 來使用 Gmail 寄信

中繼測試

目前個人的樹梅派有兩組帳號, pi 和 rich, 個人郵寄伺服器已架設使用 Gmail做為郵件寄送中繼, 在Thunderbird 郵件工具新增一組帳號 rich, 再做一次郵寄中繼測試, 以便獲得更多一點的了解

在Thunderbird 新增帳號

Thunderbird 將 自 動 搜 尋 建 議 使 用 的 伺 服 器 設 • 您 的 全 名 rich huang 電 件 地 址 rich@rurupapa.ddns.net 記 住 密 碼 嘗 試 使 用 常 用 的 伺 服 器 名 稱 後 , 找 到 設 定 · 可 用 設 定 0 IMAP 與 您 的 伺 服 器 同 步 信 件 匣 與 郵 件 臼 收 件 rurupapa.ddns.net STARTTLS 寄 件 罒 rurupapa.ddns.net STARTTLS 8 使 用 者 名 稱

成 功 建 立 帳 號 | 您 可 以 在 Thunderbird 使 用 此 號 了 。 您 可 以 連 結 相 關 服 務 並 設 定 號 進 階 選 墝 來 加 強 使 用 體 驗 。 rich huang rich@rurupapa.ddns.net 號 設 定 •0 端 到 端 加 密 下 載 字 典 套 件 連 結 您 的 線 上 服 務 加 入 簽 章 設 定 其 他 服 務 , 您 可 充 分 使 用 仆 underbird 的 相 關 功 能 · #CardDAVÄ 訊 錄 連 結 LDAP 通 訊 錄 連 結 端 行 事 曆

先郵寄一封給個人伺服器的自己測試一下, 沒問題的話, 再寄一封到 Hotmail 試試看 (伺服器會採Gmail 中繼的方式), 如下

v pi@rurupapa.ddns.net ifV&t1T v rich@rurupapa.ddns.net ifV&t1T est email from rich@rurupapa using Th.„• Test email to oneself using Thunderbird rich@rurupapa.ddns.net Test ernail from rich@rurupapa using Thunderbird cf_rich_huang@hotmail.com est email from rict*rurupapa using Thunderbirg 10:39

Hotmail 有收到郵件, 寄件者的郵件地址呈現為我的Gmail帳號地址, 而非我個人郵件網域地址,不過郵件並沒有被歸類為垃圾郵件, 如下

- Hotmail Hotmail p rich huang O Test email from rich@rurupapa u Test email from rich@rurupapa us Rich Huang O test email from gmail test email from gmail 10140 -1009 Test email from rich@rurupapa using Thunderbird rich huang 10:40 cf_rich_huang@hotmail.com Test email from rich@rurupapa using Thunderbird

郵件地址替換

郵件地址替換做法和設定有很多種, 參考如下

參考裡的文章內容說明有點硬, 很難磕, 留著日後再研究, 選擇直接從 Gmail 設定下手 (目前個人郵件伺服器也只有我個人在使用, 只有兩個帳號 pi 和 rich而以 ),告知 Gmail 轉寄時要替換郵寄地址, 作法如下

在 Gmail 個人帳戶新增一組郵寄地址, 以對應個人郵件伺服器的帳號 rich@rurupapa.ddns.net, 這樣中繼出去的郵件, 郵件地址才會呈現個人郵件伺服器的帳號地址, 操作如下

Gmail 設 定 一 般 設 定 標 籤 變 更 戶 設 定 . 收 件 匣 搜 尋 郵 件 篩 選 器 和 的 地 址 變 更 密 碼 變 更 密 碼 媛 項 其 他 Goog | e 戶 設 定 寄 和 POP/IMAP 外 掛 程 式 即 時 蛹 訊 和 Meet 進 階 線 設 定 景 主 題 您 使 用 Gmail 收 發 公 司 電 子 郵 件 嗎 ? 匯 入 郵 件 與 絡 人 • 瞭 解 詳 ( 甲 G11 從 的 他 電 子 地 址 荙 *E 企 業 可 透 過 Google Workspace 取 得 < 你 的 名 稱>@(範例>℃0n1 電 子 仵 地 址 , 更 多 存 空 和 管 理 員 工 輿 · 解 詳 懩 ifYahoo! 、 Hotmail' AOL 、 其 他 件 或 POP3 帳 戶 匯 人 。 匯 入 郵 件 與 聯 絡 人 預 設 修 改 資 訊 Rich Huang epi@rurupapa•ddns•net> , - 一 -- - 一 已 新 增 pi@ru ru papa.dd ns.net 件 伺 服 器 :rurupapa-ddns.net 採 用 TLS 的 加 密 線 ( 通 訊 埠 25 ) 設 為 預 值 修 改 資 訊 一 4 一 一 -- 一 -- - 一 一 一 一 一 一 - , , , 一 準 備 新 增 rich@rurupapa•dd ns•net 回 覆 郵 件 時 : O 永 從 預 設 的 t 也 址 叵 覆 (ääærich.richhuang@gmail.com/ : 可 以 在 回 覆 魡 電 子 件 址 眒 解 )

注意! 這裡埠號請選25, 不要 587

新 增 您 其 他 的 電 子 郵 件 地 址 透 過 SMTP 伺 服 器 件 將 的 件 為 透 rurupapa.ddns.net SMTP 伺 服 使 用 者 名 : rich 4 用 TLS 旳 加 線 ( 建 使 用 ) 無 法 蘧 線 至 同 服 器 , 重 新 檢 服 器 和 訊 埠 號 碼 -

新 增 您 其 他 的 電 子 郵 件 地 址 認 證 並 加 入 您 的 電 子 件 地 址 恭 ! 系 統 已 找 到 該 伺 服 器 並 驗 證 您 , 完 成 後 一 訇 步 可 使 用 ! 有 確 碼 的 電 子 件 至 rich@rurupapa.ddns.net 降 新 麇 子 件 1 如 要 新 電 子 邽 件 址 , 戔 選 以 下 其 - 欞 方 法 : | 入 並 證 確 碼 。 咹 一 下 認 電 子 件 中 的 迧 結

Gmail 會寄 “確認碼” 到個人伺服器帳號, 此時郵件工具 Thunderbird 會收到來自 Gmail 的郵件, 如下, 先填確認碼, 之後再按連結進行確認

填確認碼

新 增 您 其 他 的 電 子 郵 件 地 址 確 認 驗 證 並 加 入 您 的 電 子 件 地 址 恭 ! 統 已 找 該 伺 服 並 驗 惌 憑 證 , 完 後 - 個 步 可 嫟 使 用 ! 附 有 確 碼 的 電 子 郵 件 已 至 rich@rurupapa.ddns.net 新 E 子 如 要 電 子 件 地 址 , 任 以 下 中 - 方 : | 入 並 碼 , - 下 確 電 子 件 中 的 結

按 Thunderbird 郵件中的連結進行確認

IX4LkaQa TOfWov6zKS46pd81 T', Gmail rich@rurupapa.ddns.net Gmail : nttps.:ll.maŒgugEGQ.m

確認Gmail帳戶已新增郵寄地址

Gmail 設 定 一 般 設 定 標 籤 收 件 匣 匯 入 件 與 聯 絡 人 : 選 擇 寄 件 地 址 : 搜 尋 郵 件 篩 器 和 封 的 地 址 寄 和 PO MAP 外 掛 程 式 即 時 通 訊 和 Meet 從 Yahoo! · Hotmail' AOL · 其 他 頁 件 或 POP3 帳 戶 匯 入 , 匯 入 件 與 聯 絡 人 Rich Huang crich.richhuang@gmail.com/ 進 階 線 設 定 景 主 題 預 設 修 改 訊 用 Gmail 從 您 的 其 他 電 子 郵 件 地 址 送 郵 Rich Huang epi@rurupapa.ddns.net> 鄞 件 送 伺 服 器 : rurupapa.ddns.net 瞭 解 詳 懩 採 用 TLS 的 加 密 連 線 ( 通 訊 埠 25 ) 芹 迗 同 服 : rurupapa.ddns.net 採 用 TLS 的 加 密 連 線 ( 通 訊 埠 25 ) 新 增 另 一 個 電 子 郵 件 地 址 叵 覆 郵 件 時 , 0 永 從 設 的 地 址 覆 ( 目 是 rich.richhuang@gmail.com/ ( 注 : 客 可 以 在 回 同 更 子 件 址 ) 設 為 頇 設 值 修 改 訊 設 為 預 設 值 修 改 訊 刪 除 刪 除

使用郵件工具 Thunderbird 再寄一次測試郵件給 Hotmail

Test email from rich@rurupapa using Thunderbird - ? - Thunderbird 3iBh(H) (8) rich huang rich@rurupapa.ddnsnet Test email from rich@rurupapa using Thunderbird -

Hotmail 收到, 但這一次郵件被歸類為垃圾郵件 (總比被 “彈” 掉要好), 至於如何避免被列為垃圾信, 還需要再研究研究

p rich huang o Test email from Test email from rich@rurupapa using Thunderbird - 2 Hotmail cf_rich_huang@hotmail... test mail test mail 10:59 FF 10:06 C]

不過, “郵件地址” 已經改為個人郵件伺服器的帳號地址了

Test email from rich@rurupapa using Thunderbird - 2 rich huang 10:59 cf_rich_huang@hotmail.com

垃圾郵件認定測試

這麼辛苦架設郵件伺服器, 發送的郵件當然不想被人視為 “垃圾” 啊!

Further email testing

If all went well your email has been sent and you can do one more test

  • Go to the following site – www.mail-tester.com
  • Copy the email address
  • Send an email from your newly created account to that address
    • Make the email look ‘normal’, do not just put a single word, and do not attach anything
  • Click on Then check your score
  • Look at the result, it will tell you what looks not right in your email

結果:

ddns網域的郵件基本會被視為垃圾郵件, 在設定上還需要繼續擦脂抹粉(masquerade)一下, 參考 Postfix masquerading or changing outgoing SMTP email or mail address

我需要實際線上實測, 歡迎來信

  • rich@rurupapa.ddns.net
  • pi@rurupapa.ddns.net

結論

免費的最貴!“, 它沒你的吃錢, 但它吃你的時間, Free Try之前要慎重!

個人郵件伺服器使用Gmail做郵件寄送中繼站

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *