選單

全收信箱是什麼?預發環境為什麼愛用全收地址

全收信箱讓任意前綴的信都進同一個匣,設定一次就能接收大量測試信。本文說明它的好處、收件失控與誤收真實郵件的風險,以及前置分流與保留策略。

發佈於

  • 全收信箱
  • 預發環境
  • 測試

全收信箱的設定方式很簡單:把一個網域設成「不論前綴是什麼都收」,於是任何寄到這個網域的信都會落進同一個收件匣。它在預發環境裡非常受歡迎,因為省去了替每個測試建立帳號的麻煩;但這份方便也帶來幾個必須先想清楚的風險。

全收地址在預發環境解決什麼麻煩?

預發環境的測試資料經常是隨機產生的。姓名是隨機的、電話是隨機的、地址也是隨機的,如果信箱欄位要求唯一,測試就必須每次都先建立一個新信箱才能繼續。全收地址把這一步省掉:任何一個看起來合理的地址都能收信,測試資料產生器不必和信箱伺服器溝通。

第二個好處是彈性。當測試需要模擬不同來源時,只要換一個前綴就好,不需要回頭改設定。這在探索性測試特別有用,因為你事先不知道會用到哪些地址。

第三個好處是穩定的收件端。信件全部集中在同一個地方,檢查、匯出與清理都只有一個入口,不必在多個信箱之間來回切換。

任意前綴都收,代價是什麼?

第一個代價是收件量失控。既然什麼前綴都收,那麼寄到這個網域的信就不會有人擋;只要網域曾經出現在網路上,廣告信與掃描信就會自己找上門,久了之後真正要看的測試信會被淹沒。

第二個代價更嚴重:可能收到真實使用者的郵件。如果這個網域曾經是正式服務在用的,或者使用者把它誤填成真實地址,那麼驗證信、密碼重設信、甚至發票通知都會進到這個匣裡。這已經不只是測試問題,而是資料保護問題。

第三個代價是設定外洩。全收的規則通常寫在網域層級;一旦這個網域同時被其它用途使用,寄往任何前綴的內部信件都會一併收進來。信件裡如果帶著內部連結或暫存憑證,影響就會擴散到測試環境以外。

要怎麼分流與清理?

做法 目的 要注意的地方
依前綴分流到不同匣 讓不同團隊或不同測試各看各的 需要事先約定命名規則
只收指定前綴 縮小收件範圍,降低誤收 測試資料產生器必須配合
設定保留期限 避免信件無限累積 逾期的信件就無法再回頭查
定期匯出後清除 保留證據又不佔空間 匯出檔本身也要有保存規則

分流的關鍵是命名規則。只要前綴有固定格式,例如用途加日期加流水號,閱讀時就能一眼看出這封信屬於哪一輪測試;相反地,隨機前綴雖然方便,事後卻幾乎無法歸類。建議把命名規則寫進團隊文件,而不是留在某個人的印象裡。

什麼情況一定不能用全收地址?

當這個網域有任何真實使用者時,就不能用。這條界線沒有例外:預發環境絕對不能收走正式環境的真實使用者郵件,這不只是測試流程的問題,而是把不相關的人的信件放進一個存取控制更鬆的環境。

第二種情況是信件內容含敏感資訊。重設密碼信、一次性連結、發票或合約附件,這些不該停在一個共用且長期存在的匣裡。

第三種情況是沒有人負責清理。全收地址一旦啟用就會一直收,如果沒有人定期檢視與清除,它會變成一個沒有人知道裡面有什麼的資料堆,出事時也無法說明信件被保存了多久。

全收地址和獨立地址怎麼選?

選法的關鍵只有一題:這些信之後有沒有人要回頭看。如果每一輪測試都是當下檢查、當下結束,那麼獨立地址會比全收設定乾淨得多,因為它天然就帶著一組邊界,時間到了整批消失,不必另外維護保留規則。

相反地,如果你需要保留一段時間的收件紀錄、需要跨團隊共用同一個收件入口、或者測試的位址是由外部系統決定而無法事先配合,那麼全收地址的彈性才有價值。此時要記得把前綴命名規則、保留期限與清理責任一起寫進流程裡,否則省下來的時間會在事後查資料時全部吐回去。

還有一個折衷的做法值得考慮:主要測試流程使用獨立地址,另外開一個全收地址專門接收那些「不知道會寄到哪裡」的信。這樣既保留了彈性,也不會讓所有測試信混在同一個沒有歸屬的匣裡。

如果你的測試跑在持續整合裡,還有一條比全收更乾淨的路:把寄信導向自己環境裡的收件端,完全不對外送信。這種做法在測試環境擷取郵件裡有完整的說明,它和全收的差別在於信件根本沒有離開你的機器,因此不存在誤收真實郵件的問題。

在本站的臨時信箱裡怎麼配合使用

如果只是要驗證「這一封信能不能送到某個地址」,其實不需要動用全收設定。在本站的臨時信箱裡產生幾個獨立地址,就能涵蓋多數測試情境,而且每個地址界線清楚、到期自動清除,不必煩惱保留與外洩。

要判斷什麼時候用獨立地址、什麼時候用全收地址,可以先讀臨時信箱原理理解收件端怎麼被指定。這裡產生的地址僅供測試與接收註冊驗證信,不能當作真實身分,也不該被拿來接收任何真實使用者的郵件。

給開發者:全收的開關、範圍與紅線

全收是網域層級的設定,所以它同時是便利與風險的來源。實務上有幾條守則:

  • 開關要明確。設定本身應該看得出來「這個網域會收下所有前綴」,而不是藏在某個預設值裡。
  • 範圍要收斂。能用指定前綴就不要用全收;能用獨立網域就不要和正式服務共用。
  • 生產與預發必須分離。全收規則絕對不能套用在正式服務使用的網域上,這件事應該在部署流程裡被檢查,而不是靠人記得。
  • 保留策略要事先寫好。信要留多久、誰能讀、怎麼刪除,這三題在啟用之前就該有答案。
  • 不要在信匣裡放憑證。測試信裡的連結應該指向測試環境,不能連回正式環境。

下一步

先確認你的預發網域沒有和任何真實服務重疊,再決定要不要啟用全收;如果只是少量測試,用獨立地址會比開一個全收設定安全得多。接著可以讀測試環境擷取郵件,看看在持續整合裡完全不對外寄信的作法。

繼續閱讀

臨時信箱(一次性信箱/10 分鐘信箱)相關文章