Java Outlook和office 365 don';无法识别ICS文件

Java Outlook和office 365 don';无法识别ICS文件,java,outlook,office365,icalendar,Java,Outlook,Office365,Icalendar,我正在开发一个ics发送函数。 但我在office 365和outlook方面遇到了一些问题。 当我将ics文件发送到google mail时,我没有任何问题。 我的活动会出现在gmail上。 但当我发送到outlook或office 365时,我的约会没有出现,但它出现在电子邮件附件(ATT00001.ics)中。 这是发送邮件的代码 private void generateIcal(MimeMessage message) throws MessagingException, IOExce

我正在开发一个ics发送函数。 但我在office 365和outlook方面遇到了一些问题。 当我将ics文件发送到google mail时,我没有任何问题。 我的活动会出现在gmail上。 但当我发送到outlook或office 365时,我的约会没有出现,但它出现在电子邮件附件(ATT00001.ics)中。 这是发送邮件的代码

private void generateIcal(MimeMessage message) throws MessagingException, IOException {
        message.addHeaderLine("method=REQUEST");
        message.addHeaderLine("charset=UTF-8");
        message.addHeaderLine("component=VEVENT");
        message.setFrom(new InternetAddress(from));
        message.setSubject(subj,"UTF-8");
        StringBuffer sb = new StringBuffer();
// Create the message part
        BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
        messageBodyPart.setHeader("Content-Class", "urn:content-classes:calendarmessage");
        messageBodyPart.setHeader("Content-ID", "calendar_message");
        messageBodyPart.setDataHandler(new DataHandler(
                new ByteArrayDataSource(txt, "text/calendar;charset=utf-8")));//very important

// Create a Multipart
        Multipart multipart = new MimeMultipart();
// Add part one
        multipart.addBodyPart(messageBodyPart);

// Put parts in message
        message.setContent(multipart);
    }
这将生成ics文件

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//TELELANGUE//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:20180714T170000Z
DTEND:20180715T035900Z
SUMMARY:Fête à la Bastille
END:VEVENT
END:VCALENDAR
1) 解析ics。文件,并使其成为收件箱中的事件,以便您无需打开附件即可读取事件信息

2) 添加交互性,以便您可以直接从收件箱接受/拒绝邀请,而无需打开ics文件。(这就是Gmail现在的功能)

有关更多信息,请参阅以下链接:

谢谢你的回复

最后,我找到了解决办法。 看起来,我们需要在BodyPart中设置“method”和“name”参数

MessageBodyPart.setDataHandler(new DataHandler(
                    new ByteArrayDataSource(buffer.toString(), "text/calendar;method=REQUEST;name=\"meeting.ics\"")));

呃,只是我的意见。。。如果有允许共享的日志,将有助于那些有经验的人发现/排除堵塞的原因…不幸的是,我没有任何日志,因为outlook没有任何错误哦,天哪。喜悦的泪水这救了我的命。我花了三天的时间试图解决这个问题。