Java解析eml文件
2014-07-25 17:42
169 查看
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();
}
}
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();
}
}
相关文章推荐
- java email操作demo和解析eml文件
- 用java读取解析一个含有变量的配置文件
- 在VS.NET2005中使用java代码段以及SOL文件格式的解析
- 解析Java的Class文件格式——解析魔数和版本号
- 按sun标准解析的java class文件
- [转载]JAVA高手解析XML配置文件的读取操作
- 读取eml格式文件,并解析
- 用正则表达式和java解析csv文件
- Java中的文件与磁盘操作技术详细解析
- Java中如何解析XML文件
- java解析CRL文件
- 解析Java的Class文件格式——解析魔数和版本号(一)
- 使用Digester解析XML文件和JAVA对象的映射
- JAVA高手解析XML配置文件的读取操作
- Java Class 文件解析
- 解析java的*.class文件
- Java 用 JDom 解析 XML 配置文件
- 解析Java的Class文件格式——解析魔数和版本号
- JAVA中解析XML文件
- eml文件的解析和发送 [三角猫]