无法使用 JavaMail 读取邮件内容
Not able to read content of mail using JavaMail
我正在尝试使用 JavaMail
阅读邮件内容
Object msg = message.getContent();
Multipart mp = (Multipart) msg;
for(int k = 0; k < mp.getCount(); k++) {
BodyPart bp = mp.getBodyPart(k);
if (bp.isMimeType("text/plain")) {
String s = (String) bp.getContent();
System.out.println("Content:" + s);
}
else if(bp.isMimeType("text/html")) {
String s = (String) bp.getContent();
System.out.println("Content:" + s);
}
}
但我收到以下错误:
java.lang.ClassCastException: java.lang.String cannot be cast to javax.mail.Multipart
如何删除它?
Object msg = message.getContent();
Multipart mp = (Multipart) msg;
message.getContent()
不一定需要是多部分消息 - 如果不是多部分消息,它 returns 纯消息内容作为字符串。
if (msg istanceof Multipart) {
// your multipart handling code
} else {
String s = (String) msg;
System.out.println("Content:" + s);
}
-编辑-
还有第三种情况,输入流返回时:http://docs.oracle.com/javaee/6/api/javax/mail/Part.html#getContent()
发送的电子邮件似乎不是多部分内容类型。先检查邮件是否有附件:
String contentType = message.getContentType();
if (contentType.contains("multipart")) {
}
返回对象的类型取决于内容本身。 text/plain
内容返回的对象通常是 String
对象。 multipart
内容返回的对象始终是 Multipart
subclass.
使用运算符instanceof
,找出对象的class。
Object content = message.getContent();
if(content instanceof String) {
...
} else if(content instanceof Multipart) {
...
}
我正在尝试使用 JavaMail
Object msg = message.getContent();
Multipart mp = (Multipart) msg;
for(int k = 0; k < mp.getCount(); k++) {
BodyPart bp = mp.getBodyPart(k);
if (bp.isMimeType("text/plain")) {
String s = (String) bp.getContent();
System.out.println("Content:" + s);
}
else if(bp.isMimeType("text/html")) {
String s = (String) bp.getContent();
System.out.println("Content:" + s);
}
}
但我收到以下错误:
java.lang.ClassCastException: java.lang.String cannot be cast to javax.mail.Multipart
如何删除它?
Object msg = message.getContent();
Multipart mp = (Multipart) msg;
message.getContent()
不一定需要是多部分消息 - 如果不是多部分消息,它 returns 纯消息内容作为字符串。
if (msg istanceof Multipart) {
// your multipart handling code
} else {
String s = (String) msg;
System.out.println("Content:" + s);
}
-编辑-
还有第三种情况,输入流返回时:http://docs.oracle.com/javaee/6/api/javax/mail/Part.html#getContent()
发送的电子邮件似乎不是多部分内容类型。先检查邮件是否有附件:
String contentType = message.getContentType();
if (contentType.contains("multipart")) {
}
返回对象的类型取决于内容本身。 text/plain
内容返回的对象通常是 String
对象。 multipart
内容返回的对象始终是 Multipart
subclass.
使用运算符instanceof
,找出对象的class。
Object content = message.getContent();
if(content instanceof String) {
...
} else if(content instanceof Multipart) {
...
}