2013-12-05 2 views
0

Я пытаюсь отправить приглашение iCal, но я не могу показать его как событие в Outlook при отправке его через сервер Exchange. Если я использую внешний сервер IMAP все работает нормально, похоже, проблемы с Exchange (возможно, некоторые конфигурации)Событие VCal, не отображаемое в Outlook

Это является событие, ничего особенного (я пропустил информацию)

BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:PUBLISH 
BEGIN:VEVENT 
DTSTAMP:20131205T154852Z 
UID:20131205T154852Z-1 
SUMMARY:I 
X-ALT-DESC;FMTTYPE=text/html: 
DTSTART:20131206T090000 
DTEND:20131206T180000 
ORGANIZER:mailto: 
ATTENDEE;ROLE=REQ-PARTICIPANT; 
END:VEVENT 
END:VCALENDAR 

Может быть, есть какой-то дополнительный заголовок, который я должен поставить, чтобы заставить Outlook видеть его как событие.

Я отправляю его с использованием этого кода Java через внутренний SMTP-сервер.

final MimeMessage message = getMimeMessage(mailSession, template); 
    Multipart multipart = new MimeMultipart(); 
    message.setContent(multipart); 
    Transport.send(message); 

и эта библиотека (ical4j)

MimeBodyPart iCalEvent = new MimeBodyPart(); 
    iCalEvent.addHeader("Content-Class", "urn:content-classes:calendarmessage"); 
    net.fortuna.ical4j.model.Calendar calendar = createICalInvitation("1", subject, description, start, end, timeZone, recipients, location); 
    iCalEvent.setContent(calendar.toString(),"text/calendar;method=PUBLISH;charset=\"UTF-8\""); 
    multipart.addBodyPart(iCalEvent); 

Согласно this bug, прогнозу должен иметь метод = ПУБЛИКОВАТЬ для корректного отображения событию

+0

Как именно вы его отправляете? Как сообщение MIME через SMTP? –

+0

@Tomalak Спасибо, но я изменил его в PUBLISH в заголовке и теле, но он все еще не интерпретируется –

ответ

1

Похоже, это было потому, что я использовал многослойные сообщения ,

Когда я переключился на простой MimeMessage, все сработало нормально.