2017-01-24 3 views
0

L'utilisation sabre/vobject bibliothèque Je crée un fichier ics comme celui-ci:Thunderbird + Foudre est rendu une invitation ics inappropriée

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 

Ensuite, en utilisant phpmailer, je joins le fichier généré à un message électronique et envoyer aux utilisateurs qui participent à l'événement. Les utilisateurs qui utilisent thunderbird (avec l'extension Lightning - qui est par défaut) reçoivent le message électronique dans le format suivant:

enter image description here

Comme vous le voyez dans l'image du fichier ics est analysé et rendu dans la table au bas de l'e-mail. Cependant, l'en-tête de la table (celui marqué en rouge) n'affiche pas les informations correctes. L'utilisateur du test n'a jamais confirmé sa présence, et s'il le fait, le fichier ics ne fournit aucune information à ce sujet.

Est-ce que le formatage du fichier ics est incorrect?

Est-ce un bug connu de Thunderbird/Lightning?

MISE À JOUR Les en-têtes de courrier électronique du message:

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: <[email protected]> 
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-- 
+0

Ce serait probablement mieux dans un rapport de bug sur bugzilla.mozilla.org. Ce serait génial si vous pouviez montrer la source exacte d'email, avec tous les en-têtes (vous pouvez expurger ceux confidentiels sensibles) –

+0

@PhilippKewisch J'ai déjà rempli un [bug] (https://bugzilla.mozilla.org/show_bug.cgi ? id = 1333389). Question mise à jour avec les en-têtes d'email. – antoniom

+0

Pouvez-vous référencer l'ID de bogue? –

Répondre

0

Vous devez faire le type de contenu de la ics attache quelque chose comme:

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

L'option method est le mot magique. Je ne suis pas complètement sûr que cela fonctionne, mais c'est au moins plus proche de la spécification. Je suis heureux de mettre à jour ma réponse si cela ne fonctionne pas.

+0

J'ai changé le contenu du fichier .eml que j'ai entre les mains de Content-Type: text/calendar; name = "invitation.ics" 'à' Content-Type: texte/calendrier; jeu de caractères = "utf-8"; method = REQUEST' et le problème persiste. Ce qui est intéressant, c'est que Thunderbird qui reçoit le message lâche les en-têtes supplémentaires fournis et garde seulement Content-Type: text/calendar; – antoniom

+0

Thunderbird ne modifie généralement pas les en-têtes. Pouvez-vous vérifier que ceci n'est pas supprimé quelque part entre les deux, par ex. dans le code backend de phpmailer? Vous pouvez également essayer de supprimer Content-Disposition dans la partie texte/calendrier. –

+0

@antoniom avez-vous eu la chance de vérifier cela? J'apprécierais que vous puissiez accepter la réponse si cela vous a été utile. –