Class DirectMailer
java.lang.Object
io.leandev.appfuse.mail.DirectMailer
- All Implemented Interfaces:
Mailer, org.springframework.mail.javamail.JavaMailSender, org.springframework.mail.MailSender
public class DirectMailer
extends Object
implements Mailer, org.springframework.mail.javamail.JavaMailSender
綁定單一 JavaMailSender 的具體 Mailer
政策於建構時套用
外寄安全政策(防火牆/白名單/debug/改寄/特殊訊息)是建構參數——
不給 MailOutboundPolicy 就建不出來,「所有 Mailer 走同一段政策碼」由建構子擔保,
不依賴呼叫端記得套用。政策內容見 MailOutboundPolicy。
預設寄件者(defaultFrom)
建構時烘入寄件者字串(Name <addr> 或純位址);compose() 據此預填 from,
消費端組信不需要知道寄件身分從哪來(系統設定或範圍專屬設定)。
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class郵件發送器資訊static class郵件發送測試結果Nested classes/interfaces inherited from interface Mailer
Mailer.MailConnectionTestResult -
Constructor Summary
ConstructorsConstructorDescriptionDirectMailer(org.springframework.mail.javamail.JavaMailSender delegate, MailOutboundPolicy policy, String defaultFrom) 建構並套用外寄政策DirectMailer(org.springframework.mail.javamail.JavaMailSender delegate, MailOutboundPolicy policy, String defaultFrom, String subjectPrefixOverride) 建構並套用外寄政策(含主旨前綴覆寫) -
Method Summary
Modifier and TypeMethodDescriptioncompose()組一封信;getDefaultFrom()非空時預填 from(呼叫端可再覆寫)jakarta.mail.internet.MimeMessagejakarta.mail.internet.MimeMessagecreateMimeMessage(InputStream contentStream) 取得底層 JavaMailSender 資訊boolean檢查 JavaMail debug 模式是否啟用booleanbooleanvoidsend(jakarta.mail.internet.MimeMessage mimeMessage) 寄出一封已組好的 MimeMessage(外寄政策——防火牆/改寄/特殊訊息——在此套用)voidsend(jakarta.mail.internet.MimeMessage... mimeMessages) voidsend(org.springframework.mail.javamail.MimeMessagePreparator mimeMessagePreparator) voidsend(org.springframework.mail.javamail.MimeMessagePreparator... mimeMessagePreparators) voidsend(org.springframework.mail.SimpleMailMessage simpleMessage) voidsend(org.springframework.mail.SimpleMailMessage... simpleMessages) sendTestEmail(String testRecipient, String testSubject) 發送測試郵件 - 實際發送一封測試郵件來驗證完整功能測試連接 - 檢查底層 JavaMailSender 是否能正常連接
-
Constructor Details
-
DirectMailer
public DirectMailer(org.springframework.mail.javamail.JavaMailSender delegate, MailOutboundPolicy policy, String defaultFrom) 建構並套用外寄政策- Parameters:
delegate- 底層 JavaMailSenderpolicy- 環境層外寄政策(於建構時套用)defaultFrom- 預設寄件者(Name <addr>或純位址;null 表示無預設)
-
DirectMailer
public DirectMailer(org.springframework.mail.javamail.JavaMailSender delegate, MailOutboundPolicy policy, String defaultFrom, String subjectPrefixOverride) 建構並套用外寄政策(含主旨前綴覆寫)- Parameters:
subjectPrefixOverride- 特殊訊息主旨前綴覆寫(範圍專屬設定用);空則沿用政策預設
-
-
Method Details
-
compose
組一封信;getDefaultFrom()非空時預填 from(呼叫端可再覆寫) -
getDefaultFrom
-
isFirewallEnabled
public boolean isFirewallEnabled() -
getAllowedDomains
-
isRedirectEnabled
public boolean isRedirectEnabled() -
getRedirectAddress
-
getNoticeSubjectPrefix
-
getNoticeHeaders
-
isDebugEnabled
public boolean isDebugEnabled()檢查 JavaMail debug 模式是否啟用 -
createMimeMessage
@NonNull public jakarta.mail.internet.MimeMessage createMimeMessage()- Specified by:
createMimeMessagein interfaceorg.springframework.mail.javamail.JavaMailSender
-
createMimeMessage
@NonNull public jakarta.mail.internet.MimeMessage createMimeMessage(@NonNull InputStream contentStream) throws org.springframework.mail.MailException - Specified by:
createMimeMessagein interfaceorg.springframework.mail.javamail.JavaMailSender- Throws:
org.springframework.mail.MailException
-
send
public void send(@NonNull jakarta.mail.internet.MimeMessage mimeMessage) throws org.springframework.mail.MailException Description copied from interface:Mailer寄出一封已組好的 MimeMessage(外寄政策——防火牆/改寄/特殊訊息——在此套用) -
send
public void send(@NonNull jakarta.mail.internet.MimeMessage... mimeMessages) throws org.springframework.mail.MailException - Specified by:
sendin interfaceorg.springframework.mail.javamail.JavaMailSender- Throws:
org.springframework.mail.MailException
-
send
public void send(@NonNull org.springframework.mail.javamail.MimeMessagePreparator mimeMessagePreparator) throws org.springframework.mail.MailException - Specified by:
sendin interfaceorg.springframework.mail.javamail.JavaMailSender- Throws:
org.springframework.mail.MailException
-
send
public void send(@NonNull org.springframework.mail.javamail.MimeMessagePreparator... mimeMessagePreparators) throws org.springframework.mail.MailException - Specified by:
sendin interfaceorg.springframework.mail.javamail.JavaMailSender- Throws:
org.springframework.mail.MailException
-
send
public void send(@NonNull org.springframework.mail.SimpleMailMessage simpleMessage) throws org.springframework.mail.MailException - Specified by:
sendin interfaceorg.springframework.mail.MailSender- Throws:
org.springframework.mail.MailException
-
send
public void send(@NonNull org.springframework.mail.SimpleMailMessage... simpleMessages) throws org.springframework.mail.MailException - Specified by:
sendin interfaceorg.springframework.mail.MailSender- Throws:
org.springframework.mail.MailException
-
testConnection
測試連接 - 檢查底層 JavaMailSender 是否能正常連接- Specified by:
testConnectionin interfaceMailer
-
sendTestEmail
發送測試郵件 - 實際發送一封測試郵件來驗證完整功能
刻意繞過外寄政策(直接走底層 delegate):這是平台維運驗證「線路通不通」的動作, 收件者由維運者顯式指定,不應被防火牆/改寄攔截。
-
getMailSenderInfo
取得底層 JavaMailSender 資訊
-