public class testemail {
Properties properties = null;
private Session session = null;
private Store store = null;
private Folder inbox = null;
private String userName = "xx@gmail.com"; //
private String password = "xx";
public testemail() {
}
public void readMails() throws Exception {
properties = new Properties();
properties.setProperty("mail.host", "imap.gmail.com");
properties.setProperty("mail.port", "995");
properties.setProperty("mail.transport.protocol", "imaps");
session = Session.getInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
});
try {
store = session.getStore("imaps");
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
//Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false));
Message messages[]=inbox.getMessages();
// System.out.println("Number of mails = " + messages.length);
ArrayUtils.reverse(messages);
for ( Message message : messages ) {
System.out.println("Subject: "+ message.getSubject());
//if(message.getSubject().toString()=="Suppliers that match your search: suto in future mode")
//{
Address[] from = message.getFrom();
System.out.println("-------------------------------");
System.out.println("Date : " + message.getSentDate());
//System.out.println("From : " + from[0]);
//System.out.println("Subject: " + message.getSubject());
//System.out.println("Content :");
Object content = message.getContent();
Multipart multiPart = (Multipart) content;
//procesMultiPart(multiPart);
System.out.println("--------------------------------");
//}
//else
//{
//System.out.println("not found");
//}
}
inbox.close(true);
store.close();
}
catch (NoSuchProviderException e)
{
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public void procesMultiPart(Multipart content) throws Exception {
int multiPartCount = content.getCount();
for (int i = 0; i < multiPartCount; i++) {
BodyPart bodyPart = content.getBodyPart(i);
Object o;
o = bodyPart.getContent();
if (o instanceof String) {
System.out.println(o);
} else if (o instanceof Multipart) {
procesMultiPart((Multipart) o);
}
}
}
public static void main(String[] args) throws Exception {
testemail sample = new testemail();
sample.readMails();
}}
主题:使用Gmail的收件箱保持更有条理
日期:8月14日星期五19:46:39 IST 2015
主题:登录尝试被阻止
日期:8月14日星期五21:53:49 IST 2015
主题:与您的搜索匹配的供应商:Jan 28 US by vani
日期:8月15日星期六11:55:33 IST 2015
主题:符合您搜索条件的供应商:Search1
日期:8月15日星期六11:55:35 IST 2015
主题:符合您搜索条件的供应商:123
日期:8月15日星期六11:55:29 IST 2015
主题:符合您搜索条件的供应商:
日期:8月15日星期六11:55:32 IST 2015
主题:符合您搜索条件的供应商:ttt
日期:8月15日星期六11:55:30 IST 2015
主题:符合您搜索条件的供应商:未来模式下的suto
日期:8月15日星期六11:55:33 IST 2015
主题:符合您搜索条件的供货商:2012年3月13日测试汽车
日期:8月15日星期六11:55:30 IST 2015
答案 0 :(得分:2)
似乎Folder#getMessages()
不保证邮件的特定顺序。所以你必须自己排序:
ArrayUtils.sort(messages, new Comparator<Message>() {
@Override
public int compareTo(Message m1, Message m2) {
return m2.getReceivedDate().compareTo(m1.getReceivedDate());
}
});