2013-10-22 27 views
7

Ho problemi con Outlook 2007. Quando si invia un'e-mail "multipart/alternative" con una parte "text/calendar", Outlook riconosce l'evento del calendario, è così che deve essere. Ma quando si aggiunge una parte "text/plain", Outlook visualizza solo il testo normale, manca la parte del calendario (ma è presente nel codice sorgente dell'e-mail).E-mail multiparte con testo e calendario: Outlook non riconosce ics

La fonte assomiglia a questo:

[...] 
Content-Type: multipart/alternative; 
boundary="_=_swift_v4_138243630552664dd1bc83e_=_" 

--_=_swift_v4_138243630552664dd1bc83e_=_ 
Content-Type: text/plain; charset=utf-8 
Content-Transfer-Encoding: quoted-printable 

[...the plain message...] 

--_=_swift_v4_138243630552664dd1bc83e_=_ 
Content-Type: text/calendar; charset=utf-8 
Content-Transfer-Encoding: quoted-printable 

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//GourmetPortal//NONSGML rr//DE 
BEGIN:VEVENT 
UID:res-Burkert 
CREATED:20131030T113000Z 
ORGANIZER;CN=3DSven Burkert:MAILTO:[...] 
SUMMARY:[...] 
DESCRIPTION:[...] 
DTSTART:20131030T113000Z 
END:VEVENT 
END:VCALENDAR 

--_=_swift_v4_138243630552664dd1bc83e_=_-- 

risposta

8

Ti manca il metodo iTIP, sia nel tipo di contenuto:

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

e come una proprietà VCALENDAR così:

BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:REQUEST 
PRODID:-//GourmetPortal//NONSGML rr//DE 

Il metodo potrebbe essere pubblicare o RICHIESTA (in cui caso manchi anche qualche proprietà ATTENDEE).

Poi, alcuni clienti stanno ignorando iMIP in multipart/alternative e sono alla ricerca solo come allegati in modo potrebbe essere necessario provare la seguente struttura:

multipart/mixed 
    multipart/alternative 
    text/plain 
    text/calendar;method=REQUEST 
    text/calendar (with a content-disposition:attachment) 

In sostanza, si sta aggiungendo l'allegato due volte. L'invito di iMIP da google/yahoo calendario e fulmine ha una tale struttura.

+0

Ho cambiato la posta, ora sembra così: 'Content-Type: text/calendar; method = PUBBLICA; charset = utf-8 Codifica del trasferimento di contenuto: quotato- INIZIO: VCALENDAR VERSIONE: 2.0 METODO: PUBBLICARE' Ma Outlook non riconosce ancora l'evento del calendario. Il problema sembra essere qualcos'altro. Come ho accennato nel mio primo post, tutto funziona bene quando si rimuove il testo/parte in chiaro. – Sven

+0

Ho aggiornato la mia risposta. – arnaudq

+0

Grazie, questa è la soluzione: il file del calendario deve essere aggiunto come allegato al file, il che significa che abbiamo queste intestazioni: 'Content-Type: text/plain; name = myCalendar.ics Content-Disposition: attachment; filename = myCalendar.ics' – Sven

0

Per assicurarsi Outlook riconosce sempre la parte iCal, creare un messaggio in cui il testo/calendario è l'unica parte MIME. Tutto il resto (corpo, allegati, ecc.) Deve essere incorporato nella parte VEVENT.

+0

Allegati in VEVENT? È possibile? Perché la parte testo/calendario è l'unica parte della mima? C'è un bug di Outlook noto? – Sven

+0

Certo, questo è l'intestazione "ATTACH" per (puoi avere più di una). Outlook deve essere in grado di riconoscere il messaggio come un invito alla riunione, il che significa che la parte principale dovrebbe essere testo/calendario. Se puoi renderlo la parte * only *, Outlook riconoscerà sicuramente l'invito alla riunione. –