Outlook и Office 365 не распознают файл ICS - PullRequest
0 голосов
/ 25 сентября 2018

Я разрабатываю функциональность отправителя сообщений.Но у меня есть некоторые проблемы с офисом 365 и перспективой.Когда я отправил файл ics в почту google, у меня не возникло никаких проблем.Мое событие появилось в 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

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Спасибо за ваш ответ

Наконец-то я нашел решение.Похоже, нам нужно установить параметры «method» и «name» в BodyPart.

MessageBodyPart.setDataHandler(new DataHandler(
                    new ByteArrayDataSource(buffer.toString(), "text/calendar;method=REQUEST;name=\"meeting.ics\"")));
0 голосов
/ 26 сентября 2018

1) Разобрать ИКС.файл и сделайте его событием в папке «Входящие», чтобы вы могли прочитать информацию о событии, не открывая вложение.

2) Добавьте интерактивность, чтобы вы могли принять / отклонить приглашение непосредственно из папки «Входящие», даже не открывая файл ics.(Это то, что сейчас есть в Gmail).

Для получения дополнительной информации, пожалуйста, перейдите по ссылке ниже:

Входящие приглашения календаря из Outlook являются пустыми

.ics файлы не отображаютсяв почтовом ящике Outlook.com?

...