1.接收邮件
1.1使用POP3接收邮件
1.1.1输出收件箱信息
package org.ygy.demo;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
public class ReceiveMail {
public static final String HOST = "pop.126.com";//服务器地址
public static final String PROTOCOL = "pop3";//协议
public static final String PORT = "110";//pop默认端口为110
public static final String USER = "xxx@126.com";//账户
public static final String PASSWORD = "xxx"; //密码
/**
* 输出收件箱的基本信息
*/
public void displayFolderInfo() {
Properties props = new Properties();
props.put("mail.pop3.host", ReceiveMail.HOST);//设置服务器地址
props.put("mail.store.protocol" , ReceiveMail.PROTOCOL);//设置协议
props.put("mail.pop3.port", "110");//设置端口
Session session = Session.getDefaultInstance(props);
Store store = null;
Folder folder = null;
try {
store = session.getStore();
store.connect(HOST , USER , PASSWORD);
/*
* POP3 supports only a single folder named "INBOX".
* POP协议的话,这里只能是INBOX
*/
folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);//以只读方式打开收件箱
System.out.println("邮件总数:" + folder.getMessageCount());
//由于POP3协议无法获知邮件的状态,所以getUnreadMessageCount()得到的是收件箱的邮件总数
System.out.println("未读邮件数:" + folder.getUnreadMessageCount());
//由于POP3协议无法获知邮件的状态,所以下面得到的结果始终都是为0
System.out.println("删除邮件数:" + folder.getDeletedMessageCount());
System.out.println("新邮件数:" + folder.getNewMessageCount());
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} finally {
try {
folder.close(false);
store.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
ReceiveMail receive = new ReceiveMail();
receive.displayFolderInfo();
}
}
结果显示如下图:
这时,你可以通过浏览器登录“126邮箱”删除几封邮件,再运行测试一下,数据都是正确的。126邮箱默认都打开了POP/SMTP功能,可以设置的。
注:126邮箱比较好用,之前使用QQ邮箱时,获取的”邮件总数“总是不对,结果显示只有16封,但是用浏览器登录QQ邮箱,可以看到一共有200多封,不知道还需要设置什么。输出邮件内容之后,发现好像只有2013年的,。
1.1.2输出邮件信息
package org.ygy.demo; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; 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.NoSuchProviderException; import javax.mail.Part; import javax.mail.Session; import javax.mail.Store; import javax.mail.internet.InternetAddres