import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;



import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

import javax.mail.Part;

import javax.mail.Session;

import javax.mail.internet.MimeMessage;



public class eml {

public static void main(String args[]) {



test();

}



public static void test() {

try {



Properties props = new Properties();

Session session = Session.getDefaultInstance(props,

null);

InputStream inMsg;

inMsg = new FileInputStream("D:\\test.eml");



Message msg = new MimeMessage(session,

inMsg);

String[] date=msg.getHeader("Date");

// String[] from=

// String[] to=





if (msg.isMimeType("multipart/*")

|| msg.isMimeType("MULTIPART/*")) {

Multipart mp = (Multipart) msg.getContent();



int totalAttachments = mp.getCount();

if (totalAttachments > 0) {

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

Part part = mp.getBodyPart(i);

String s = getMailContent(part);

String attachFileName = part.getFileName();

String disposition = part.getDisposition();

String contentType = part.getContentType();

if ((attachFileName != null && attachFileName.endsWith(".ics"))

|| contentType.indexOf("text/calendar") >= 0) {

String[] dateHeader = msg.getHeader("date");

}

}

inMsg.close();

}

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}



}




public static String getMailContent(Part part)

throws Exception {

String contenttype = part.getContentType();

int nameindex = contenttype.indexOf("name");

boolean conname = false;

if (nameindex != -1) {

conname = true;

}

StringBuilder bodytext = new StringBuilder();

if (part.isMimeType("text/plain")

&& !conname) {

bodytext.append((String) part.getContent());

} else if (part.isMimeType("text/html")

&& !conname) {

bodytext.append((String) part.getContent());

} else if (part.isMimeType("multipart/*")) {

Multipart multipart = (Multipart) part.getContent();

int counts = multipart.getCount();

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

getMailContent(multipart.getBodyPart(i));

}

} else if (part.isMimeType("message/rfc822")) {

getMailContent((Part) part.getContent());

} else {

}

return bodytext.toString();

}

}