android 使用javamail内容转换的问题

发布于 2022-09-01 18:14:08 字数 2284 浏览 19 评论 0

在Android开发开发邮件系统的时候,需要解析javamail返回的content对象,在网上找了一些博客,感觉都是没有讲清楚这个content到底是怎么解析的,总是会有异常,但是又找不到到底怎么写才好。。解析的代码如下,希望有大神帮我解答一些疑问。。谢谢:

private void compileMailContent(Part part) throws MessagingException, IOException {
        String contentType = part.getContentType();
        // Log.v("content type", "[" + contentType.replace("\n", "") + "]" + "["
        // + part.getContent() + "]");
        boolean connName = false;
        if (contentType.indexOf("name") != -1) {
            connName = true;
        }
        if (part.isMimeType("text/plain") && !connName) {
            String content = parseInputStream((InputStream) part.getContent());
            mailContent.append(content);
        } else if (part.isMimeType("text/html") && !connName) {
            html = true;
            String content = parseInputStream((InputStream) part.getContent());
            mailContent.append(content);
        } else if (part.isMimeType("multipart/*") || part.isMimeType("message/rfc822")) {
            Object o = part.getContent();
            if (o instanceof Multipart) {
                Multipart multipart = (Multipart) part.getContent();
                int counts = multipart.getCount();
                for (int i = 0; i < counts; i++) {
                    compileMailContent(multipart.getBodyPart(i));
                }
            } else {
                Multipart multipart = new MimeMultipart(new ByteArrayDataSource(part.getInputStream(), "multipart/*"));
                int counts = multipart.getCount();
                for (int i = 0; i < counts; i++) {
                    compileMailContent(multipart.getBodyPart(i));
                }
            }
        } else if (part.getDisposition() != null && part.getDisposition().equals(Part.ATTACHMENT)) {
            // ��ȡ����
            String filename = part.getFileName();
            if (filename != null) {
                if (filename.indexOf("=?gb18030?") != -1) {
                    filename = filename.replace("gb18030", "gb2312");
                }
                filename = MimeUtility.decodeText(filename);
                attachments.add(filename);
                attachmentsInputStreams.add(part.getInputStream());
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文