package cn.com;

import java.security.Security;

import java.util.Date;

import java.util.Properties;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.NoSuchProviderException;

import javax.mail.Session;

import com.sun.mail.imap.IMAPFolder;

import com.sun.mail.imap.IMAPStore;public classImapFetchMail {public static voidmain(String[] args) {

String host= "imap.qq.com";int port = 993;

String username= "316301857@qq.com";

String password= "dengzhiyuanaiyuer";

final String SSL_FACTORY= "javax.net.ssl.SSLSocketFactory";

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());/*Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

这里有一个错我是这么解决的(Windows -> Preferences,Java/Compiler/Errors/Warnings->

Deprecated and restricted API, Forbidden reference (access rules),原始设定为Error修改为Warning)*/Properties props=System.getProperties();

props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);

props.setProperty("mail.imap.socketFactory.port","993");

props.setProperty("mail.store.protocol","imap");

props.setProperty("mail.imap.host", host);

props.setProperty("mail.imap.port", "993");

props.setProperty("mail.imap.auth.login.disable", "true");

Session session= Session.getDefaultInstance(props,null);

session.setDebug(false);

IMAPFolder folder= null;

IMAPStore store=null;try{

store=(IMAPStore)session.getStore("imap"); //使用imap会话机制,连接服务器

store.connect(host,port,username,password);

folder=(IMAPFolder)store.getFolder("Sent Messages"); //收件箱

Folder defaultFolder=store.getDefaultFolder();

Folder[] allFolder=defaultFolder.list();for (int i = 0; i < allFolder.length; i++) {

System.out.println("这个是服务器中的文件夹="+allFolder[i].getFullName());

}//使用只读方式打开收件箱

folder.open(Folder.READ_WRITE);int size =folder.getMessageCount();

System.out.println("这里是打印的条数=="+size);

Message[] mess=folder.getMessages();//Message message = folder.getMessage(size);

for (int i = 0; i <5; i++) {

Stringfrom = mess[i].getFrom()[0].toString();

String subject=mess[i].getSubject();

Date date=mess[i].getSentDate();

System.out.println("From:" + from);

System.out.println("Subject:" +subject);

System.out.println("Date:" +date);

}/*String from = message.getFrom()[0].toString();

String subject = message.getSubject();

Date date = message.getSentDate();*/

/*BufferedReader br = new BufferedReader(new InputStreamReader(System.in));*/}catch(NoSuchProviderException e) {

e.printStackTrace();

}catch(MessagingException e) {

e.printStackTrace();

}finally{try{if (folder != null) {

folder.close(false);

}if (store != null) {

store.close();

}

}catch(MessagingException e) {

e.printStackTrace();

}

}

System.out.println("接收完毕!");

}

}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐