2015-04-11 22 views
5

Invio la posta di invito alla riunione tramite PHP a Outlook. A seguito di codice, io sto usandoPerché Outlook desidera eliminare questo invito alla riunione corrente, inviato a livello di codice?

BEGIN:VCALENDAR 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20150501T080000Z 
DTEND:20150502T090000Z 
DTSTAMP:20150511T075116Z 
ORGANIZER;CN=Jass:mailto:[email protected] 
UID:12345678123 
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Sample:mailto:[email protected] 
DESCRIPTION:Complete event on http://www.sample.com/get_event.php?id=12345678 
LOCATION: India 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:TESTING timezones 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

Problema

Quando l'utente riceve la posta allora invece di accettare e di declino, sta mostrando non attuali e quando lo scatto sopra poi mostra avviso "Questa richiesta di riunione è scaduto e verrà eliminato "

Qual è il motivo esatto? Non sono in grado di capirlo.

+0

Prima dell'eliminazione, indica l'ora in cui si ritiene che la riunione sia? Forse i campi data/ora non sono nel formato corretto? L'ora è impostata correttamente sul computer di Outlook? Potrebbe valere la pena di abbattere i campi in quella richiesta per mettere a nudo gli elementi essenziali, nel caso in cui qualsiasi Outlook sconvolgente. Inoltre, controlla il tuo formato di nuova riga. – halfer

+0

Con lo stesso codice, riceve correttamente su altre email come yahoo e gmail ma solo il problema è in Outlook – Jass

+0

DTSTAMP ha effetto? – Jass

risposta

1

Un paio di cose:

  1. Assicurarsi un appuntamento con lo stesso UID 12.345.678,123 mila) non esiste nella cartella Calendario.

  2. Assicurarsi che DTSTAMP non contenga una data futura.

1

Probabilmente hai già un evento con lo stesso UID nel calendario:

UID:12345678123 

Risposta breve: genera sempre un UID univoco globale se questo è un nuovo marchio, evento uncorelated

Risposta lunga : Quando un invito viene ricevuto via email per un evento già esistente, il client deve confrontare la copia esistente con quella ricevuta sulla base di:

  1. la sequenza numerica
  2. la proprietà DTSTAMP

Se l'aggiornamento ricevuto è più vecchio di l'evento sul lato client, viene scartato.

Quindi, quando si genera un aggiornamento, se l'aggiornamento dell'evento è minimo, si può semplicemente usare un DTSTAMP successivo. Se la modifica è abbastanza significativa (ad esempio la modifica di DTSTART), il numero SEQUENCE deve essere aumentato.

Vedi https://tools.ietf.org/html/rfc5546#section-2.1.4