spring.mail.host=imap.qq.com
spring.mail.port=993
spring.mail.protocol=imap
spring.mail.username=10086@qq.com
spring.mail.password=1234
@Value("${spring.mail.host}")
private String MAIL_HOST;
@Value("${spring.mail.port}")
private String MAIL_PORT;
@Value("${spring.mail.protocol}")
private String MAIL_PROTOCOL;
@Value("${spring.mail.username}")
private String MAIL_USERNAME;
@Value("${spring.mail.password}")
private String MAIL_PASSWORD;
public static void main(String[] args) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";//ssl加密
// 准备连接服务器的会话信息
Properties props = new Properties();
props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.imap.socketFactory.fallback", "false");
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.host", "imap.qq.com");
props.setProperty("mail.imap.port", "993");
Session session = Session.getInstance(props); // 创建Session实例对象
Store store = session.getStore("imap"); // 创建IMAP协议的Store对象
store.connect(myEmailAccount, myEmailPassword); // 连接邮件服务器
// 获得收件箱
Folder folder = store.getFolder("INBOX");
// 以读写模式打开收件箱
folder.open(Folder.READ_WRITE);
// 获得收件箱的邮件列表
Message[] messages = folder.getMessages();
// 打印不同状态的邮件数量
System.out.println("收件箱中共" + messages.length + "封邮件!");
System.out.println("收件箱中共" + folder.getUnreadMessageCount() + "封未读邮件!");
System.out.println("收件箱中共" + folder.getNewMessageCount() + "封新邮件!");
System.out.println("收件箱中共" + folder.getDeletedMessageCount() + "封已删除邮件!");
int total = folder.getMessageCount();
// 得到收件箱文件夹信息,获取邮件列表
Message[] msgs = folder.getMessages();
for (int i = 0; i < total; i++) {
MimeMessage message = (MimeMessage) messages[i];
if (EmptyOrNull.isEmpty(message.getFlags().toString())) {
System.out.println(message.getSubject() + " 接收时间:" + message.getReceivedDate().toLocaleString());
}
}
// 关闭资源
folder.close(false);
store.close();
}