Java Outlook和office 365 don';无法识别ICS文件
我正在开发一个ics发送函数。 但我在office 365和outlook方面遇到了一些问题。 当我将ics文件发送到google mail时,我没有任何问题。 我的活动会出现在gmail上。 但当我发送到outlook或office 365时,我的约会没有出现,但它出现在电子邮件附件(ATT00001.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
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没有任何错误哦,天哪。喜悦的泪水这救了我的命。我花了三天的时间试图解决这个问题。