package com.szy.project.utils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;/**
* 邮件接受测试
**/
/**
* 使用POP3协议接收邮件*/
public classPOP3ReceiveMailTest {public static voidmain(String[] args) throws Exception {
resceive();
}/**
* 接收邮件*/
public static voidresceive() throws Exception {
/**
* 因为现在使用的是163邮箱 而163的 pop地址是 pop3.163.com 端口是 110 * 比如使用好未来企业邮箱 就需要换成 好未来邮箱的 pop服务器地址pop.263.net 和 端口 110
*/
String duankou = "110"; // 端口号
String servicePath = "pop3.163.com"; // 服务器地址//准备连接服务器的会话信息
Properties props = newProperties();
props.setProperty("mail.store.protocol", "pop3"); //使用pop3协议
props.setProperty("mail.pop3.port", duankou); //端口
props.setProperty("mail.pop3.host", servicePath); //pop3服务器//创建Session实例对象
Session session =Session.getInstance(props);
Store store= session.getStore("pop3");
store.connect("15701610661@163.com", "***********"); //163邮箱程序登录属于第三方登录所以这里的密码是163给的授权密码而并非普通的登录密码//获得收件箱
Folder folder = store.getFolder("INBOX");/*Folder.READ_ONLY:只读权限
* Folder.READ_WRITE:可读可写(可以修改邮件的状态)*/folder.open(Folder.READ_WRITE);//打开收件箱//由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数
System.out.println("未读邮件数:" +folder.getUnreadMessageCount());//由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0
System.out.println("删除邮件数:" +folder.getDeletedMessageCount());
System.out.println("新邮件:" +folder.getNewMessageCount());//获得收件箱中的邮件总数
System.out.println("邮件总数:" +folder.getMessageCount());//得到收件箱中的所有邮件,并解析
Message[] messages =folder.getMessages();
parseMessage(messages);//得到收件箱中的所有邮件并且删除邮件
deleteMessage(messages);//释放资源
folder.close(true);
store.close();
}/**
*