在JavaMail中获取html电子邮件内容

时间:2013-04-13 11:49:48

标签: java android html javamail content-type

我使用JavaMail API为我的Android手机制作了电子邮件客户端。如果它是一个html-邮件,我不知道如何获得电子邮件内容。我正在使用以下代码来获取内容:

public void printMessage(int messageNo) throws Exception {
    Log.i("MsgNo", "Getting message number: " + messageNo);

    Message m = null;

    try {
        m = folder.getMessage(messageNo);
        dumpPart(m);
    } catch (IndexOutOfBoundsException iex) {
        Log.i("Out of Range","Message number out of range");
    }
}

public static void dumpPart(Part p) throws Exception {

    if (p instanceof Message)
        dumpEnvelope((Message)p);
    Object content = p.getContent();
    Log.i("dumpPart",(String) content);
    String ct = p.getContentType();
    try {
        pr("CONTENT-TYPE: " + (new ContentType(ct)).toString());
        Log.i("MsgNo", "Content Type");
    } catch (ParseException pex) {
        pr("BAD CONTENT-TYPE: " + ct);
        Log.i("MsgNo", "Bad Content Type");

    }


     //* Using isMimeType to determine the content type avoids
   //  * fetching the actual content data until we need it.

    if (p.isMimeType("text/plain")) {
        pr("This is plain text");
        pr("---------------------------");
        Log.i("Text", (String)p.getContent());       
    } else {
         Log.i("MsgNo", "Just a Separator");
        // just a separator
        pr("---------------------------");

    }
}

在Logcat中,我得到dumpenvelope的返回值((Message)p);什么都没有。

有人知道该怎么办吗?

1 个答案:

答案 0 :(得分:0)

是否抛出任何异常?

您是否enable debugging并检查协议跟踪以查看可能失败的内容?

您使用的是IMAP吗?

看起来您的程序是使用名为msgshow.java的JavaMail示例程序创建的,您是否找到了完整的原始示例程序?

This JavaMail FAQ entry也可能会有所帮助。