pop3Props.setProperty("mail.pop3.socketFactory.port", portNumber);
URLName url = new URLName("pop3", host, port, "",username, password);
Session session = Session.getInstance(pop3Props, null);
Store store = new POP3SSLStore(session, url);
store.connect();
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] msgs = folder.getMessages();
if(msgs.length < 1){
return emails;
}
// Use a suitable FetchProfile
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.CONTENT_INFO);
folder.fetch(msgs, fp);
for (int i = 0; i < msgs.length; i++) {
Message msg = msgs[i];
Map<String, Object> email = new HashMap<String, Object>();
getEmailContents(msg,email);
// FROM
if ((msg.getFrom()) != null) {
email.put("From", getDataBetweenAngBrkts(msg.getFrom()[0].toString()));
}
// TO
if ((msg.getRecipients(Message.RecipientType.TO)) != null) {
String to = "";
for (int j = 0; j < msg.getRecipients(RecipientType.TO).length; j++) {
to += getDataBetweenAngBrkts(msg.getRecipients(RecipientType.TO)[j].toString())+",";
}
email.put("To", to.substring(0, to.length()-1));
}
// SUBJECT
email.put("Subject", getCleanSubject(msg.getSubject()));
// DATE
Date d = msg.getSentDate();
if(d != null){
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String d2 = sdf2.format(d);
email.put("Date", d2.toString());
}
// CC
if(msg.getRecipients(RecipientType.CC) != null){
String cc = "";
for (int j = 0; j < msg.getRecipients(RecipientType.CC).length; j++) {
cc += getDataBetweenAngBrkts(msg.getRecipients(RecipientType.CC)[j].toString())+",";
}
email.put("Cc", cc.substring(0, cc.length()-1));
}
// BCC
if(msg.getRecipients(RecipientType.BCC) != null){
String bcc = "";
for (int j = 0; j < msg.getRecipients(RecipientType.BCC).length; j++) {
bcc += getDataBetweenAngBrkts(msg.getRecipients(RecipientType.BCC)[j].toString())+",";
}
email.put("Bcc", bcc.substring(0, bcc.length()-1));
}
// MESSAGE-ID
//email.put("Message-ID",msg.getHeader("Message-ID")[0]);
@SuppressWarnings("unchecked")
Enumeration<Header> headers = msg.getAllHeaders();
while(headers.hasMoreElements()){
Header header = headers.nextElement();
if(header.getName().equals("Message-ID"))
email.put("Message-ID", getDataBetweenAngBrkts(header.getValue()));
if(header.getName().equals("In-Reply-To"))
email.put("In-Reply-To", getDataBetweenAngBrkts(header.getValue()));
if(header.getName().equals("References"))
email.put("References", header.getValue());
}
emails.add(email);
msg.setFlag(Flag.DELETED, true);
}
folder.close(true);
store.close();
return emails;
}