在此示例中,您将学习如何使用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>