javamail接收问题

时间:2014-02-18 15:21:22

标签: java blob javamail multipart

我遇到了一个大问题。我必须解释发送到特定邮件帐户的会议。问题是我不能单独解释它们,附件,但如果转发会议,我的代码会崩溃。

            Multipart multipart = (Multipart) message.getContent();
            for (int x = 0; x < multipart.getCount(); x++)
            {
                BodyPart bodyPart = multipart.getBodyPart(x);
                String[] nameHeader = bodyPart.getHeader("Content-Disposition");
                String disposition = bodyPart.getDisposition();
                if (bodyPart.isMimeType("multipart/alternative") || bodyPart.isMimeType("multipart/MIXED")  ){
                    Multipart multipart2 = (Multipart) bodyPart.getContent();
                    for (int y = 0; y < multipart2.getCount(); y++){
                        BodyPart bodyPart2 = multipart2.getBodyPart(y);
                        if (bodyPart2.isMimeType("text/calendar"))
                        {
                            partCalendar = bodyPart2;
                        }else if (bodyPart.isMimeType("text/html") || bodyPart.isMimeType("text/plain"))
                        {
                            body += bodyPart.getContent().toString();
                        }
                    }   
                }
                else if (bodyPart.isMimeType("text/calendar"))
                {
                        if (nameHeader != null && !nameHeader[0].isEmpty()) 
                        {
                            partCalendar = bodyPart;
                            DataHandler handler = bodyPart.getDataHandler();
                            //here enters the forwarded
                        }
                        else{
                            partCalendar = bodyPart;
                        }
                } else if (bodyPart.isMimeType("text/html") || bodyPart.isMimeType("text/plain"))
                {
                    body += bodyPart.getContent().toString();
                } else if (disposition != null && (disposition.equals(BodyPart.ATTACHMENT)))
                {
                    System.out.println("Hay attach");
                }}

这是我获取日历信息的方式

Blob calendarContent = NonContextualLobCreator.INSTANCE.wrap(NonContextualLobCreator.INSTANCE
                    .createBlob(partCalendar.getInputStream(), partCalendar.getSize()));

看起来: - 当会议没有附件时,它的mimetype是“text / calendar”,没有Content-disposition标头而没有文件名。 - 当会议在同一邮件中附加时,类型是“multipart / alternative”,所以我必须得到该身体部位的身体部分

这两个正在运作,但问题是转发会议时:

- 转发te会议时,邮件的mimtetype是“text / calendar”,“Content-Disposition”具有文件的名称,但我不能像其他两个一样提取内容,因为我无法生成Blob

第3点的内容类型(TEXT / CALENDAR; charset = UTF-8; method = REQUEST; name = invite.ics) 第一点的内容类型(TEXT / CALENDAR; charset = UTF-8; method = REQUEST)

对不起我的英语我希望有人可以帮助我。

0 个答案:

没有答案