JavaMail - POP3 服务器

  • 简述

    邮局协议 (POP) 是本地电子邮件客户端用于通过 TCP/IP 连接从远程服务器检索电子邮件的应用层 Internet 标准协议。POP 支持访问远程邮箱的简单下载和删除要求。POP3 服务器侦听众所周知的端口 110。
    com.sun.mail.pop3是 JavaMail API 的 POP3 协议提供程序,提供对 POP3 消息存储的访问。下表列出了此包中的类:
    Name 描述
    POP3Folder 一个 POP3 文件夹(只能是“收件箱”)。
    POP3Message 一个 POP3 消息。
    POP3SSLStore 使用 SSL 的 POP3 消息存储。
    POP3Store POP3 消息存储。
    在此提供程序上方要注意的一些要点:
    • POP3 提供程序仅支持名为的单个文件夹 INBOX. 由于 POP3 协议的限制,许多 JavaMail API 功能如事件通知、文件夹管理、标志管理等是不被允许的。
    • POP3 提供程序是通过 JavaMail API 使用协议名称pop3pop3://user:password@host:port/INBOX"形式的 URL 访问的。
    • POP3 不支持永久标志。例如,永远不会为 POP3 消息设置Flags.Flag.RECENT标志。由应用程序确定 POP3 邮箱中的哪些邮件是邮件。
    • POP3 不支持 Folder.expunge() 方法。要删除和清除邮件,请在邮件上设置 Flags.Flag.DELETED 标志并使用 Folder.close(true) 方法关闭文件夹。
    • POP3 不提供接收日期,因此 getReceivedDate 方法将返回 null。
    • 当访问 POP3 消息的标头时,POP3 提供程序使用 TOP 命令获取所有标头,然后缓存这些标头。
    • 当访问 POP3 消息的内容时,POP3 提供程序使用 RETR 命令来获取整个消息。
    • POP3Message.invalidate方法可用于无效高速缓存的数据,但不关闭的文件夹。
    POP3 协议提供程序支持以下属性,这些属性可以在 JavaMail Session 对象中设置。属性始终设置为字符串;Type 列描述了如何解释字符串。
    Name 类型 描述
    mail.pop3.user String POP3 的默认用户名。
    mail.pop3.host String 要连接的 POP3 服务器。
    mail.pop3.port int 要连接的 POP3 服务器端口,如果 connect() 方法没有明确指定一个。默认为 110。
    mail.pop3.connectiontimeout int 以毫秒为单位的套接字连接超时值。默认为无限超时。
    mail.pop3.timeout int 以毫秒为单位的套接字 I/O 超时值。默认为无限超时。
    mail.pop3.rsetbeforequit boolean 关闭文件夹时发送 POP3 RSET 命令,然后发送 QUIT 命令。默认为假。
    mail.pop3.message.class String com.sun.mail.pop3.POP3Message 的子类的类名。子类可用于处理(例如)非标准 Content-Type 标头。子类必须具有 MyPOP3Message(Folder f, int msgno) throws MessagingException 形式的公共构造函数。
    mail.pop3.localaddress String 创建 POP3 套接字时要绑定到的本地地址(主机名)。默认为 Socket 类选择的地址。
    mail.pop3.localport int 创建 POP3 套接字时要绑定到的本地端口号。默认为 Socket 类选择的端口号。
    mail.pop3.apop.enable boolean 如果设置为 true,如果 POP3 服务器支持 APOP,则使用 APOP 而不是 USER/PASS 登录到 POP3 服务器。APOP 发送密码摘要而不是明文密码。默认为假。
    mail.pop3.socketFactory Socket Factory 如果设置为实现 javax.net.SocketFactory 接口的类,该类将用于创建 POP3 套接字。
    mail.pop3.socketFactory.class String 如果设置,则指定实现 javax.net.SocketFactory 接口的类的名称。此类将用于创建 POP3 套接字。
    mail.pop3.socketFactory.fallback boolean 如果设置为 true,则无法使用指定的套接字工厂类创建套接字将导致使用 java.net.Socket 类创建套接字。默认为真。
    mail.pop3.socketFactory.port int 指定使用指定套接字工厂时要连接的端口。如果未设置,将使用默认端口。
    mail.pop3.ssl.enable boolean 如果设置为 true,则默认使用 SSL 连接并使用 SSL 端口。“pop3”协议默认为false,“pop3s”协议默认为true。
    mail.pop3.ssl.checkserveridentity boolean 如果设置为 true,请检查 RFC 2595 指定的服务器标识。默认为 false。
    mail.pop3.ssl.trust String 如果设置,并且未指定套接字工厂,则启用 MailSSLSocketFactory。
    mail.pop3.ssl.socketFactory SSL Socket Factory 如果设置为扩展 javax.net.ssl.SSLSocketFactory 类的类,则该类将用于创建 POP3 SSL 套接字。
    mail.pop3.ssl.socketFactory.class String 如果设置,则指定扩展 javax.net.ssl.SSLSocketFactory 类的类的名称。此类将用于创建 POP3 SSL 套接字。
    mail.pop3.ssl.socketFactory.port int 指定使用指定套接字工厂时要连接的端口。如果未设置,将使用默认端口。
    mail.pop3.ssl.protocols string 指定将为 SSL 连接启用的 SSL 协议。属性值是 javax.net.ssl.SSLSocket.setEnabledProtocols 方法可接受的以空格分隔的令牌列表。
    mail.pop3.starttls.enable boolean 如果为 true,则启用使用 STLS 命令(如果服务器支持)在发出任何登录命令之前将连接切换到受 TLS 保护的连接。默认为假。
    mail.pop3.starttls.required boolean 如果为 true,则需要使用 STLS 命令。如果服务器不支持 STLS 命令,或者命令失败,connect 方法就会失败。默认为假。
    mail.pop3.socks.host string 指定将用于连接到邮件服务器的 SOCKS5 代理服务器的主机名。
    mail.pop3.socks.port string 指定 SOCKS5 代理服务器的端口号。
    mail.pop3.disabletop boolean 如果设置为 true,则 POP3 TOP 命令将不会用于获取邮件头。默认为假。
    mail.pop3.forgettopheaders boolean 如果设置为 true,则可能已使用 POP3 TOP 命令检索的标头将被遗忘,并由作为 POP3 RETR 命令的一部分检索的标头替换。默认为假。
    mail.pop3.filecache.enable boolean 如果设置为 true,POP3 提供程序会将消息数据缓存在临时文件而不是内存中。只有在访问消息内容时才会将消息添加到缓存中。消息头始终缓存在内存中(按需)。当文件夹关闭或 JVM 终止时,文件缓存将被删除。默认为假。
    mail.pop3.filecache.dir String 如果启用了文件缓存,此属性可用于覆盖 JDK 用于临时文件的默认目录。
    mail.pop3.cachewriteto boolean 控制 POP3 消息对象上的 writeTo 方法的行为。如果设置为true,且消息内容尚未缓存,且ignoreList为null,则消息在写入前缓存。否则,消息将直接流式传输到输出流而不进行缓存。默认为假。
    mail.pop3.keepmessagecontent boolean 如果此属性设置为 true,则将保留对缓存内容的硬引用,防止内存被重用,直到文件夹关闭或缓存内容显式失效(使用 invalidate 方法)。默认为假。
    通常,应用程序不应直接使用此包中的类。相反,他们应该使用javax.mail包(和子包)定义的 API 。应用程序不应直接构造POP3StorePOP3Folder 的实例。相反,他们应该使用 Session 方法 getStore 来获取适当的 Store 对象,并从中获取 Folder 对象。
    检查电子邮件一章演示了使用 POP3 服务器的示例。