Class Mail

java.lang.Object
org.miaixz.bus.extra.mail.Mail
All Implemented Interfaces:
Serializable, org.miaixz.bus.core.Builder<jakarta.mail.internet.MimeMessage>

public class Mail extends Object implements org.miaixz.bus.core.Builder<jakarta.mail.internet.MimeMessage>
邮件发送客户端
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • Mail

      public Mail()
      构造,使用全局邮件帐户
    • Mail

      public Mail(MailAccount mailAccount)
      构造
      Parameters:
      mailAccount - 邮件帐户,如果为null使用默认配置文件的全局邮件配置
  • Method Details

    • of

      public static Mail of(MailAccount mailAccount)
      创建邮件客户端
      Parameters:
      mailAccount - 邮件帐号
      Returns:
      Mail
    • of

      public static Mail of()
      创建邮件客户端,使用全局邮件帐户
      Returns:
      Mail
    • to

      public Mail to(String... tos)
      设置收件人
      Parameters:
      tos - 收件人列表
      Returns:
      this
      See Also:
    • setTos

      public Mail setTos(String... tos)
      设置多个收件人
      Parameters:
      tos - 收件人列表
      Returns:
      this
    • setCcs

      public Mail setCcs(String... ccs)
      设置多个抄送人(carbon copier)
      Parameters:
      ccs - 抄送人列表
      Returns:
      this
    • setBccs

      public Mail setBccs(String... bccs)
      设置多个密送人(blind carbon copier)
      Parameters:
      bccs - 密送人列表
      Returns:
      this
    • setReply

      public Mail setReply(String... reply)
      设置多个回复地址(reply-to)
      Parameters:
      reply - 回复地址(reply-to)列表
      Returns:
      this
    • setTitle

      public Mail setTitle(String title)
      设置标题
      Parameters:
      title - 标题
      Returns:
      this
    • setContent

      public Mail setContent(String content)
      设置正文 正文可以是普通文本也可以是HTML(默认普通文本),可以通过调用setHtml(boolean) 设置是否为HTML
      Parameters:
      content - 正文
      Returns:
      this
    • setHtml

      public Mail setHtml(boolean isHtml)
      设置是否是HTML
      Parameters:
      isHtml - 是否为HTML
      Returns:
      this
    • setContent

      public Mail setContent(String content, boolean isHtml)
      设置正文
      Parameters:
      content - 正文内容
      isHtml - 是否为HTML
      Returns:
      this
    • setFiles

      public Mail setFiles(File... files)
      设置文件类型附件,文件可以是图片文件,此时自动设置cid(正文中引用图片),默认cid为文件名
      Parameters:
      files - 附件文件列表
      Returns:
      this
    • addImage

      public Mail addImage(String cid, InputStream imageStream)
      增加图片,图片的键对应到邮件模板中的占位字符串,图片类型默认为"image/jpeg"
      Parameters:
      cid - 图片与占位符,占位符格式为cid:${cid}
      imageStream - 图片文件
      Returns:
      this
    • addImage

      public Mail addImage(String cid, InputStream imageStream, String contentType)
      增加图片,图片的键对应到邮件模板中的占位字符串
      Parameters:
      cid - 图片与占位符,占位符格式为cid:${cid}
      imageStream - 图片流,不关闭
      contentType - 图片类型,null赋值默认的"image/jpeg"
      Returns:
      this
    • addImage

      public Mail addImage(String cid, File imageFile)
      增加图片,图片的键对应到邮件模板中的占位字符串
      Parameters:
      cid - 图片与占位符,占位符格式为cid:${cid}
      imageFile - 图片文件
      Returns:
      this
    • setAttachments

      public Mail setAttachments(jakarta.activation.DataSource... attachments)
      增加附件或图片,附件使用DataSource 形式表示,可以使用FileDataSource包装文件表示文件附件
      Parameters:
      attachments - 附件列表
      Returns:
      this
    • setCharset

      public Mail setCharset(Charset charset)
      设置字符集编码
      Parameters:
      charset - 字符集编码
      Returns:
      this
      See Also:
    • setUseGlobalSession

      public Mail setUseGlobalSession(boolean isUseGlobalSession)
      设置是否使用全局会话,默认为true
      Parameters:
      isUseGlobalSession - 是否使用全局会话,默认为true
      Returns:
      this
    • setDebugOutput

      public Mail setDebugOutput(PrintStream debugOutput)
      设置debug输出位置,可以自定义debug日志
      Parameters:
      debugOutput - debug输出位置
      Returns:
      this
    • build

      public jakarta.mail.internet.MimeMessage build()
      Specified by:
      build in interface org.miaixz.bus.core.Builder<jakarta.mail.internet.MimeMessage>
    • send

      public String send() throws org.miaixz.bus.core.lang.exception.InternalException
      发送
      Returns:
      message-data
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - 邮件发送异常