我正在尝试使用 JavaMail API 解析 mime 消息,我做了一些研究,但我发现的步骤对我不起作用,其中一个是这里回答的内容: Java Email message Parser?
我正在传递一个 InputStream,因为 ByteArrayInputStream 来自我要解析的内容。当我这样做时,我的 message.getContent 会导致一个空字符串。
我正在使用 Scala,顺便说一句。
我正在尝试使用 JavaMail API 解析 mime 消息,我做了一些研究,但我发现的步骤对我不起作用,其中一个是这里回答的内容: Java Email message Parser?
我正在传递一个 InputStream,因为 ByteArrayInputStream 来自我要解析的内容。当我这样做时,我的 message.getContent 会导致一个空字符串。
我正在使用 Scala,顺便说一句。
我最近遇到了这个问题,所以你的研究不可能那么好。当我说最近时,我的意思是最近几天!:P
但这就是我阅读电子邮件所做的(或者至少在某种程度上阅读了电子邮件。它返回一大块 HTML 文本,这在 JEditorPane 中并不总是很漂亮
private void tableMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tableMouseReleased
final java.awt.event.MouseEvent e = evt;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
if(table.getRowCount() == 0 || message == null || message.length == 0) {
// Do nothing
} else {
try {
int row = table.rowAtPoint(e.getPoint());
String subject = message[row].getSubject();
String from = InternetAddress.toString(message[row].getFrom());
StringBuilder body = new StringBuilder();
Multipart mp = (Multipart) message[row].getContent();
for(int i = 0; i < mp.getCount(); i++) {
BodyPart bp = mp.getBodyPart(i);
String disp = bp.getDisposition();
if(disp != null && (disp.equals(BodyPart.ATTACHMENT))) {
// Do something
} else {
body.append(bp.getContent());
}
}
EmailContent ec = new EmailContent(new JFrame(),true,from,subject,"<html>" + body.toString());
} catch (IOException ex) {
Logger.getLogger(MailPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (MessagingException ex) {
Logger.getLogger(MailPanel.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
t.start();
}
我必须用消息填充表格,然后当您单击表格中的消息时,它会显示一个包含该消息的新窗口。消息数组只是一个填充了消息对象的数组。因此,您显然需要一条消息来执行此操作。但你所追求的部分是这样的:
StringBuilder body = new StringBuilder();
Multipart mp = (Multipart) message[row].getContent();
for(int i = 0; i < mp.getCount(); i++) {
BodyPart bp = mp.getBodyPart(i);
String disp = bp.getDisposition();
if(disp != null && (disp.equals(BodyPart.ATTACHMENT))) {
// Do something
} else {
body.append(bp.getContent());
}
}
它应该可以工作,所以我们需要更多关于你正在做什么的细节来找出问题所在。
首先,让我们确保问题不在于您的代码并且邮件消息的格式正确。使用 JavaMail 附带的 msgshow.java 演示程序来显示消息。使用 -m 选项并从包含 MIME 消息的文件中重定向标准输入。它显示什么?
如果正确,请向我们展示您用于阅读消息的代码。