Отправить файл ICS через SMTP не правильно отображается в Outlook? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь отправить приглашения календаря с моего внутреннего сервера.

Вот задействованная функция:

fun sendEventInvite(to: String, subject: String, text: String) {
    val message: MimeMessage = emailSender.createMimeMessage()

    message.setRecipient(Message.RecipientType.TO, InternetAddress(to))
    message.subject = subject

    val messageBodyText = MimeBodyPart()
    messageBodyText.setText(text)
    val messageBodyEvent = MimeBodyPart()
    messageBodyEvent.dataHandler = ByteArrayDataSource(createEvent(), "text/calendar")

    val multiPart = MimeMultipart()
    multiPart.addBodyPart(messageBodyEvent)

    message.setContent(multiPart)

    emailSender.send(message)
}

А вот как я форматирую файл ICS:

fun createEvent(): String{
        return "BEGIN:VCALENDAR\n" +
        "VERSION:2.0\n" +
        "PRODID:-//GRTgaz Corporation//NONSGML Togaz'er//FR\n" +
        "METHOD:REQUEST\n" +
        "BEGIN:VEVENT\n" +
        "UID:d8f5a0777-bf6d-25d2-f14a-52e7fe3df810\n" +
        "DTSTAMP:20181119T105044Z\n" +
        "ORGANIZER;CN=Baptiste Arnaud:MAILTO:baptiste.arnaud95@gmail.com\n" +
        "DTSTART:20181120T150000\n" +
        "DTEND:20181120T153000\n" +
        "SUMMARY:Description\n" +
        "END:VEVENT\n" +
        "END:VCALENDAR\n")
    }

Предполагается, что содержимое этого файла работает, поскольку оно точно такое же, как и в рабочем примере. Таким образом, проблема исходит от почтовых заголовков? Но я не уверен, чего не хватает.

Как это должно работать:

enter image description here

Но это выглядит так:

enter image description here

1 Ответ

0 голосов
/ 16 ноября 2018

Все вызовы addHeaderLine не являются действительными заголовками MIME, поэтому я не знаю, что вы пытаетесь сделать с этим.

Использование MimeHelper просто сбивает с толку. Вызовите соответствующие методы для объекта MimeMessage напрямую и добавьте «текст» в качестве первого MimeBodyPart в составной части перед вложением ics.

...