Class MailAccount

java.lang.Object
org.miaixz.bus.extra.mail.MailAccount
All Implemented Interfaces:
Serializable

public class MailAccount extends Object implements Serializable
邮件账户对象
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

    • MAIL_SETTING_PATHS

      public static final String[] MAIL_SETTING_PATHS
      默认mail配置查询路径
  • Constructor Details

    • MailAccount

      public MailAccount()
      构造,所有参数需自行定义或保持默认值
    • MailAccount

      public MailAccount(String settingPath)
      构造
      Parameters:
      settingPath - 配置文件路径
    • MailAccount

      public MailAccount(org.miaixz.bus.setting.Setting setting)
      构造
      Parameters:
      setting - 配置文件
  • Method Details

    • getHost

      public String getHost()
      获得SMTP服务器域名
      Returns:
      SMTP服务器域名
    • setHost

      public MailAccount setHost(String host)
      设置SMTP服务器域名
      Parameters:
      host - SMTP服务器域名
      Returns:
      this
    • getPort

      public Integer getPort()
      获得SMTP服务端口
      Returns:
      SMTP服务端口
    • setPort

      public MailAccount setPort(Integer port)
      设置SMTP服务端口
      Parameters:
      port - SMTP服务端口
      Returns:
      this
    • isAuth

      public Boolean isAuth()
      是否需要用户名密码验证
      Returns:
      是否需要用户名密码验证
    • setAuth

      public MailAccount setAuth(boolean isAuth)
      设置是否需要用户名密码验证
      Parameters:
      isAuth - 是否需要用户名密码验证
      Returns:
      this
    • getAuthMechanisms

      public String getAuthMechanisms()
      获取认证机制,多个机制使用空格或逗号隔开,如:XOAUTH2
      Returns:
      认证机制
    • setAuthMechanisms

      public MailAccount setAuthMechanisms(String authMechanisms)
      设置认证机制,多个机制使用空格或逗号隔开,如:XOAUTH2
      Parameters:
      authMechanisms - 认证机制
      Returns:
      this
    • getUser

      public String getUser()
      获取用户名
      Returns:
      用户名
    • setUser

      public MailAccount setUser(String user)
      设置用户名
      Parameters:
      user - 用户名
      Returns:
      this
    • getPass

      public char[] getPass()
      获取密码
      Returns:
      密码
    • setPass

      public MailAccount setPass(char[] pass)
      设置密码
      Parameters:
      pass - 密码
      Returns:
      this
    • getFrom

      public String getFrom()
      获取发送方,遵循RFC-822标准
      Returns:
      发送方,遵循RFC-822标准
    • setFrom

      public MailAccount setFrom(String from)
      设置发送方,遵循RFC-822标准 发件人可以是以下形式:
       1. user@xxx.xx
       2.  name <user@xxx.xx>
       
      Parameters:
      from - 发送方,遵循RFC-822标准
      Returns:
      this
    • isDebug

      public boolean isDebug()
      是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启
      Returns:
      是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启
    • setDebug

      public MailAccount setDebug(boolean debug)
      设置是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启
      Parameters:
      debug - 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启
      Returns:
      this
    • getCharset

      public Charset getCharset()
      获取字符集编码
      Returns:
      编码,可能为null
    • setCharset

      public MailAccount setCharset(Charset charset)
      设置字符集编码,此选项不会修改全局配置,若修改全局配置,请设置此项为null并设置:
       System.setProperty("mail.mime.charset", charset);
       
      Parameters:
      charset - 字符集编码,null 则表示使用全局设置的默认编码,全局编码为mail.mime.charset系统属性
      Returns:
      this
    • isEncodefilename

      public boolean isEncodefilename()
      对于文件名是否使用charset编码,默认为 true
      Returns:
      对于文件名是否使用charset编码,默认为 true
    • setEncodefilename

      public void setEncodefilename(boolean encodefilename)
      设置对于文件名是否使用charset编码,此选项不会修改全局配置 如果此选项设置为false,则是否编码取决于两个系统属性:
      • mail.mime.encodefilename 是否编码附件文件名
      • mail.mime.charset 编码文件名的编码
      Parameters:
      encodefilename - 对于文件名是否使用charset编码
    • isStarttlsEnable

      public boolean isStarttlsEnable()
      是否使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。
      Returns:
      是否使用 STARTTLS安全连接
    • setStarttlsEnable

      public MailAccount setStarttlsEnable(boolean startttlsEnable)
      设置是否使用STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。
      Parameters:
      startttlsEnable - 是否使用STARTTLS安全连接
      Returns:
      this
    • isSslEnable

      public Boolean isSslEnable()
      是否使用 SSL安全连接
      Returns:
      是否使用 SSL安全连接
    • setSslEnable

      public MailAccount setSslEnable(Boolean sslEnable)
      设置是否使用SSL安全连接
      Parameters:
      sslEnable - 是否使用SSL安全连接
      Returns:
      this
    • getSslProtocols

      public String getSslProtocols()
      获取SSL协议,多个协议用空格分隔
      Returns:
      SSL协议,多个协议用空格分隔
    • setSslProtocols

      public void setSslProtocols(String sslProtocols)
      设置SSL协议,多个协议用空格分隔
      Parameters:
      sslProtocols - SSL协议,多个协议用空格分隔
    • getSocketFactoryClass

      public String getSocketFactoryClass()
      获取指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
      Returns:
      指定实现javax.net.SocketFactory接口的类的名称, 这个类将被用于创建SMTP的套接字
    • setSocketFactoryClass

      public MailAccount setSocketFactoryClass(String socketFactoryClass)
      设置指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
      Parameters:
      socketFactoryClass - 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
      Returns:
      this
    • isSocketFactoryFallback

      public boolean isSocketFactoryFallback()
      如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
      Returns:
      如果设置为true, 未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
    • setSocketFactoryFallback

      public MailAccount setSocketFactoryFallback(boolean socketFactoryFallback)
      如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
      Parameters:
      socketFactoryFallback - 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
      Returns:
      this
    • getSocketFactoryPort

      public int getSocketFactoryPort()
      获取指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口
      Returns:
      指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口
    • setSocketFactoryPort

      public MailAccount setSocketFactoryPort(int socketFactoryPort)
      指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口
      Parameters:
      socketFactoryPort - 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口
      Returns:
      this
    • setTimeout

      public MailAccount setTimeout(long timeout)
      设置SMTP超时时长,单位毫秒,缺省值不超时
      Parameters:
      timeout - SMTP超时时长,单位毫秒,缺省值不超时
      Returns:
      this
    • setConnectionTimeout

      public MailAccount setConnectionTimeout(long connectionTimeout)
      设置Socket连接超时值,单位毫秒,缺省值不超时
      Parameters:
      connectionTimeout - Socket连接超时值,单位毫秒,缺省值不超时
      Returns:
      this
    • setWriteTimeout

      public MailAccount setWriteTimeout(long writeTimeout)
      设置Socket写出超时值,单位毫秒,缺省值不超时
      Parameters:
      writeTimeout - Socket写出超时值,单位毫秒,缺省值不超时
      Returns:
      this
    • getCustomProperty

      public Map<String,Object> getCustomProperty()
      获取自定义属性列表
      Returns:
      自定义参数列表
    • setCustomProperty

      public MailAccount setCustomProperty(String key, Object value)
      设置自定义属性,如mail.smtp.ssl.socketFactory
      Parameters:
      key - 属性名,空白被忽略
      value - 属性值, null被忽略
      Returns:
      this
    • getSmtpProps

      public Properties getSmtpProps()
      获得SMTP相关信息
      Returns:
      Properties
    • defaultIfEmpty

      public MailAccount defaultIfEmpty()
      如果某些值为null,使用默认值
      Returns:
      this
    • toString

      public String toString()
      Overrides:
      toString in class Object