Thunderbird+Lightning некорректно отображает приглашение ics

Используя библиотеку sabre/vobject, я создаю файл ics, подобный этому:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.1.2//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:sabre-vobject-d4b1ccb3-2197-4ee4-aab8-7bc2516adbf8
DTSTAMP:20170123T182612Z
SUMMARY:testev2
DESCRIPTION:
DTSTART;TZID=Europe/Athens:20170214T090000
DTEND;TZID=Europe/Athens:20170215T170000
LOCATION:
ORGANIZER;CN=Organizer Name:mailto:[email protected]
ATTENDEE;CN=Test User:MAILTO:[email protected]
END:VEVENT
END:VCALENDAR

Затем, используя phpmailer, я прикрепляю сгенерированный файл к сообщению электронной почты и отправляю его пользователям, участвующим в мероприятии. Пользователи, использующие Thunderbird (с расширением Lightning, которое включено по умолчанию), получают сообщение электронной почты в следующем формате:

введите здесь описание изображения

Как вы видите на картинке, файл ics анализируется и отображается в таблице в нижней части электронного письма. Однако заголовок таблицы (отмеченный красным) не отображает правильную информацию. Тестовый пользователь никогда не подтверждал свое присутствие, а если и подтверждал, то файл ics не содержит никакой информации об этом.

Я неправильно форматирую файл ics?

Это известная ошибка Thunderbird/Lightning?

ОБНОВЛЕНИЕ Заголовки сообщения электронной почты:

Return-Path: <XXXXXXXXXXXXXXXX>
Received: from deliver ([unix socket])
     by mail (Cyrus v2.3.16-Fedora-RPM-2.3.16-13.el6_6) with LMTPA;
     Tue, 24 Jan 2017 12:48:10 +0200
X-Sieve: CMU Sieve 2.3
Received: from [XXX.XXX.XXX.XXX] (XXXXXXXXXXXXXX [XXX.XXX.XXX.XXX
    (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits))
    (No client certificate requested)
    by XXXXXXXXXXXXXX (Postfix) with ESMTPSA id 6F18C1BE0305
    for <XXXXXXXXXXXXXX>; Tue, 24 Jan 2017 12:48:10 +0200 (EET)
Subject: Fwd: Event invitation: testev2
To: "XXXXXXXX" <XXXXXXXXXXXXXX>
From: XXXXXXXXXXXXXX <XXXXXXXXXXXXXX>
X-Forwarded-Message-Id:
Message-ID: <bac7749e-9699-1b50-9de5-27a510c663a4@XXXXXXXX>
Date: Tue, 24 Jan 2017 12:48:09 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.6.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="------------79DD2A1D49F1A57579125B45"

This is a multi-part message in MIME format.
--------------79DD2A1D49F1A57579125B45
Content-Type: multipart/alternative;
 boundary="------------72E56459CD6D794D0DF5AC4B"

--------------72E56459CD6D794D0DF5AC4B
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
> ------- Forwarded Message --------
Forward message content
> --------------72E56459CD6D794D0DF5AC4B
> Content-Type: text/html; charset=windows-1252
> Content-Transfer-Encoding: 8bit
>
HTML Content
> --------------72E56459CD6D794D0DF5AC4B--
>
> --------------79DD2A1D49F1A57579125B45
> Content-Type: text/calendar;
>  name="invitation.ics"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
>  filename="invitation.ics"
>
ICS Content
> --------------79DD2A1D49F1A57579125B45--

person antoniom    schedule 24.01.2017    source источник
comment
Лучше бы это было в отчете об ошибке на bugzilla.mozilla.org. Было бы здорово, если бы вы могли показать точный источник электронной почты со всеми заголовками (вы можете отредактировать те, которые касаются конфиденциальности).   -  person Philipp Kewisch    schedule 24.01.2017
comment
@PhilippKewish Я уже заполнил ошибку. Вопрос обновлен заголовками электронной почты.   -  person antoniom    schedule 25.01.2017
comment
Можете ли вы указать идентификатор ошибки?   -  person Philipp Kewisch    schedule 25.01.2017
comment
@PhilippKewish, идентификатор ошибки — 1333389. Я проверю ваш ответ как можно скорее.   -  person antoniom    schedule 25.01.2017


Ответы (1)


Вы должны сделать Content-Type вложения ics примерно таким:

Content-Type: text/calendar; charset="utf-8"; method=REQUEST

Параметр method — это волшебное слово. Я не совсем уверен, что это работает, но, по крайней мере, это ближе к спецификации. Я рад обновить свой ответ, если он не работает.

person Philipp Kewisch    schedule 25.01.2017
comment
Я изменил содержимое файла .eml, который у меня есть, с Content-Type: text/calendar; name="invitation.ics" на Content-Type: text/calendar; charset="utf-8"; method=REQUEST, и проблема не устранена. Что интересно, Thunderbird, который получает сообщение, отбрасывает предоставленные дополнительные заголовки и сохраняет только Content-Type: text/calendar; - person antoniom; 25.01.2017
comment
Thunderbird обычно не вносит изменения в заголовки. Можете ли вы убедиться, что это не отброшено где-то между ними, например. в бэкэнд-коде phpmailer? Вы также можете попробовать удалить Content-Disposition из текстовой/календарной части. - person Philipp Kewisch; 25.01.2017
comment
@antoniom, у тебя была возможность это проверить? Буду признателен, если вы примете ответ, если он был вам полезен. - person Philipp Kewisch; 05.04.2017
comment
@phillip-kewisch Я действительно проверил это с того момента, как вы его отправили, но это не решило мою проблему. В ближайшие несколько недель я вернусь к этому и пришлю вам более подробную информацию. Спасибо! - person antoniom; 05.04.2017