簡體   English   中英

javamail無法讀取多部分/混合的郵件

[英]javamail cannot read multipart/mixed mails

我無法檢索“ multipart / MIXED”郵件正文的內容...

這就是我用來閱讀郵件的方式。

private String read(Message message) throws MessagingException, IOException {
        String result = message.getContentType().toString() + " Unable to read";
        if (message instanceof MimeMessage) {
            MimeMessage m = (MimeMessage) message;
            Object contentObject = m.getContent();
            if (contentObject instanceof Multipart) {
                BodyPart clearTextPart = null;
                BodyPart htmlTextPart = null;
                Multipart content = (Multipart) contentObject;
                int count = content.getCount();
                for (int i = 0; i < count; i++) {
                    BodyPart part = content.getBodyPart(i);
                    if (part.isMimeType("text/plain")) {
                        clearTextPart = part;
                        break;
                    } else if (part.isMimeType("text/html")) {
                        htmlTextPart = part;
                    }
                }
                if (clearTextPart != null) {
                    result = (String) "<html><body>"
                            + clearTextPart.getContent() + "</body></html>";
                } else if (htmlTextPart != null) {
                    String html = (String) htmlTextPart.getContent();
                    result = android.text.Html.fromHtml(html).toString();
                }
            } else if (contentObject instanceof String) {
                String html = (String) contentObject;
                result = html;
            } else {
                result = "not found";
            }
        }
        return result;
    }

如您所見,問題是,郵件甚至不會通過條件(MimeMessage的消息實例) ...

“ multipart / MIXED”郵件的輸出為:

multipart/MIXED; boundary=20cf306..... Unable to read 
public static String processBody( > Part p < , String operacao)    
 } else if (p.isMimeType("multipart/*")) {
                *** MimeMessage m = (MimeMessage) p; ***
                Multipart mp = (Multipart) m.getContent();
                for (int i = 0; i < mp.getCount(); i++) {
                    t = processBody(mp.getBodyPart(i), operacao);
                    if (t != null)
                        return t;
                }
            }

您尚未提供足夠的細節。 當然,您可以通過該代碼跟蹤程序的流程。 到底是什么情況? 如果未通過其中一項測試,您看到的實際值是什么?您期望什么?

您正在使用哪個版本的JavaMail?

您正在從郵件服務器閱讀郵件嗎? 調試輸出顯示什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM