在此示例中,您将学习如何使用POP3接收电子邮件。我们将连接到Gmail服务器并阅读INBOX文件夹中的邮件。您需要执行一些步骤来下载此电子邮件。步骤如下:
邮件会话的设置属性。
创建一个javax.mail.Authenticator对象。
创建邮件会话。
获取POP3商店提供程序并连接到商店。
获取文件夹,然后在商店中打开INBOX文件夹。
从文件夹中检索消息。
关闭文件夹并关闭存储。
这些步骤可以编写为以下代码段:
package org.nhooo.example.mail; import javax.mail.*; import java.util.Properties; public class ReadEmail { public static final String USERNAME = "nhooo"; public static final String PASSWORD = "**********"; public static void main(String[] args) throws Exception { // 1.设置邮件会话的属性。 Properties props = new Properties(); props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.pop3.socketFactory.fallback", "false"); props.put("mail.pop3.socketFactory.port", "995"); props.put("mail.pop3.port", "995"); props.put("mail.pop3.host", "pop.gmail.com"); props.put("mail.pop3.user", ReadEmail.USERNAME); props.put("mail.store.protocol", "pop3"); // 2.创建一个javax.mail.Authenticator对象。 Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(ReadEmail.USERNAME, ReadEmail.PASSWORD); } }; // 3.创建邮件会话。 Session session = Session.getDefaultInstance(props, auth); // 4.获取POP3商店提供程序并连接到商店。 Store store = session.getStore("pop3"); store.connect("pop.gmail.com", ReadEmail.USERNAME, ReadEmail.PASSWORD); // 5.获取文件夹,然后在商店中打开INBOX文件夹。 Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); // 6.从文件夹中检索消息。 Message[] messages = inbox.getMessages(); for (Message message : messages) { message.writeTo(System.out); } // 7.关闭文件夹并关闭存储。 inbox.close(false); store.close(); } }
Maven依赖
<!-- http://repo1.maven.org/maven2/javax/mail/javax.mail-api/1.5.6/javax.mail-api-1.5.6.jar --> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.6</version> </dependency> <!-- http://repo1.maven.org/maven2/javax/mail/mail/1.4.7/mail-1.4.7.jar --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>