Javamail与Jsoup整合
开发需求:通过第三方获取各邮箱内容
主要jar包:jsoup.jar-1.6.0.jar,javax.mail-1.5.0.jar
说明:
1.测试目标为163或126网易邮箱,功能实现且数据无误;QQ邮箱存在SSL加密,需手动设置。
2.三方登陆需要开启邮箱的POP3(发送还需要开启SMTP)功能。
3.程序中的密码为开启POP3时设置的密码,不是邮箱登陆密码。
4.不同邮箱的服务器属性不同,百度一下就有。
网易邮箱开启POP3截图:
代码:
public class SendTest {
@Test
public void test() throws MessagingException, IOException {
//配置pop3服务器属性
String pop3Server = "pop.163.com";
String protocol = "pop3";
String user = "15021234103";
String pwd = "lucky123";
//创建具有连接信息的properties对象
Properties props = new Properties();
props.setProperty("mail.store.protocol", protocol);
props.setProperty("mail.pop3.host", pop3Server);
//使用properties对象获取session对象
Session session = Session.getInstance(props);
// session.setDebug(true);
//利用session对象获取store对象,并链接pop3服务器
Store store = session.getStore();
store.connect(pop3Server,user,pwd);
//获得邮箱内的邮件夹folder对象,只读
Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_ONLY);
//获得邮件夹folder内所有邮件messages对象
Message[] messages = folder.getMessages();
int mailCounts = messages.length;
System.out.println("共有"+mailCounts+"封邮件");
for(int i=0;i<mailCounts;i++){
String subject = messages[i].getSubject();
String from = (messages[i].getFrom()[0]).toString();
System.out.println("第"+(i+1)+"封邮件的主题:"+subject);
System.out.println("第"+(i+1)+"封邮件的发件人地址:"+from);
//System.out.println("是否打开该邮件(yes/no)?:");
/*
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
if("yes".equalsIgnoreCase(input)){
messages[i].writeTo(System.out);
}*/
System.out.println("start!");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent("内容", "text/plain;charset=GB2312");
messageBodyPart.setDataHandler(messages[0].getDataHandler());
// System.out.println(messageBodyPart.getContent());
String domtemp = (String) messageBodyPart.getContent();
//System.out.println(domtemp);
System.out.println("-----------------------------------");
Document dom = Jsoup.parse(domtemp);
Elements strongs = dom.select("div");
for(Element strong:strongs){
System.out.println(strong.text());
}
System.out.println("over!-----------------------------");
}
folder.close(false);
store.close();
}
}
效果图: