Class MailOutboundPolicy.Builder
java.lang.Object
io.leandev.appfuse.mail.MailOutboundPolicy.Builder
- Enclosing class:
MailOutboundPolicy
-
Method Summary
Modifier and TypeMethodDescriptionallowedDomains(String... domains) 防火牆放行網域(空白項自動略過)build()驗證政策組合並建構debug(boolean enabled) JavaMail debug 模式firewall(boolean enabled) 防火牆開關(白名單以allowedDomains宣告;開而白名單空=全擋)mailConfigured(boolean configured) 這個部署是否明確配置了郵件——決定危險組合要 fail-fast 還是只 WARN。 參考接線以「app.mail.type已設」為訊號;不可拿「provider bean 存在」當訊號 (參考實作恆註冊 provider,會讓乾淨 clone 一啟動就失敗)。noticeHeader(String name, String value) 新增一個特殊訊息自訂 MIME 標頭(如X-Environment: test)noticeHeaders(Map<String, String> headers) 整批新增特殊訊息自訂 MIME 標頭noticeSubjectPrefix(String prefix) 特殊訊息主旨前綴的環境預設(如[TEST]);空白=不加redirectTo(String to) 收件者改寄便捷宣告:非空即啟用、空白=不啟用
-
Method Details
-
firewall
防火牆開關(白名單以allowedDomains宣告;開而白名單空=全擋) -
allowedDomains
防火牆放行網域(空白項自動略過) -
debug
JavaMail debug 模式 -
redirect
-
redirectTo
收件者改寄便捷宣告:非空即啟用、空白=不啟用 -
noticeSubjectPrefix
特殊訊息主旨前綴的環境預設(如[TEST]);空白=不加 -
noticeHeader
新增一個特殊訊息自訂 MIME 標頭(如X-Environment: test) -
noticeHeaders
整批新增特殊訊息自訂 MIME 標頭 -
mailConfigured
這個部署是否明確配置了郵件——決定危險組合要 fail-fast 還是只 WARN。 參考接線以「app.mail.type已設」為訊號;不可拿「provider bean 存在」當訊號 (參考實作恆註冊 provider,會讓乾淨 clone 一啟動就失敗)。 -
build
驗證政策組合並建構
「不誤發真實郵件」採 production-safe 預設 + fail-fast。三擇一:
- redirect 生效:所有外寄郵件收合改寄到單一信箱、不觸及真實收件者。
redirect 優先於 firewall 短路,故此情況 firewall 不生效(
firewallActive = false)。 - firewall 開 + 有 allowed-domains:僅放行白名單網域(測試環境放行外部客戶網域)。
- firewall 關:全寄真實收件者(僅正式環境,建構時 WARN 留痕)。
危險組合的處置依
mailConfigured:已明確配置郵件 → 拋IllegalStateException(啟動失敗);未配置 → WARN 留痕、政策仍生效(全擋=寄不出去,不是誤寄)。- Throws:
IllegalStateException- 危險組合且部署已明確配置郵件
- redirect 生效:所有外寄郵件收合改寄到單一信箱、不觸及真實收件者。
redirect 優先於 firewall 短路,故此情況 firewall 不生效(
-