php calendar ms-office exchange-server webdav

Ejemplo/How-To crear una cita de calendario utilizando Exchange 03 Webdav y PHP?



ms-office exchange-server (2)

He estado tratando de resolver esto por alrededor de dos semanas. Puedo crear elementos de correo electrónico en las carpetas de las personas, leer las carpetas, todo eso pero, por mi vida, no puedo hacer nada para trabajar con los calendarios.

Puedo proporcionar ejemplos del XML que estoy enviando a WebDav pero espero que alguien haya hecho esto y tenga un ejemplo.


Hice esto en un programa Java hace unos años, y la forma en que lo hice fue PONER un documento VCALENDAR en la carpeta. Una peculiaridad es que el VCALENDAR debe estar encerrado dentro de un mensaje RFC822. Es una combinación extraña de WebDAV, correo electrónico e iCAL / VCAL, pero funcionó en ese momento en Exchange 2003 alojado en Link2Exchange.

Estoy seguro de que hay una manera más fácil, pero esto es lo que funcionó para mí. A continuación, muestro un rastro de paquete tcpdump de lo que sucedió. Probablemente deberías usar ngrep / tcpdump en tu propio cliente de Outlook / Entourage para ver qué hace.

Tenga en cuenta que "Cal2" es el nombre de mi carpeta de calendario de prueba. Utilizaría "Calendario" para la carpeta principal del calendario.

T 10.0.1.95:59741 -> 66.211.136.9:80 [AP] PUT /exchange/yourname.domainname.com/Cal2/CC1.1163646061548.0.eml HTTP/1.1. translate: f. Content-Type: message/rfc822. Pragma: no-cache. Accept: */*. Cache-Control: no-cache. Authorization: Basic NOYOUCANTSEEMYPASSWORDYOUBASTARDS. User-Agent: Jakarta Commons-HttpClient/2.0final. Host: e1.exmx.net. Cookie: sessionid=29486b50-d398-4f76-9604-8421950c7dcd:0x0. Content-Length: 478. Expect: 100-continue. . T 66.211.136.9:80 -> 10.0.1.95:59741 [AP] HTTP/1.1 100 Continue. . T 10.0.1.95:59741 -> 66.211.136.9:80 [AP] content-class: urn:content-classes:appointment. Content-Type: text/calendar;. .method=REQUEST;. .charset="utf-8". Content-Transfer-Encoding: 8bit. . BEGIN:VCALENDAR. BEGIN:VEVENT. UID:E1+1382+1014+495066799@I1+1382+1014+6+495066799. SUMMARY:Voice Architecture Leads Meeting. PRIORITY:5. LOCATION:x44444 pc:6879. DTSTART:20061122T193000Z. DTEND:20061122T203000Z. DTSTAMP:20061110T074856Z. DESCRIPTION:this is a description. SUMMARY:this is a summary. END:VEVENT. END:VCALENDAR. T 66.211.136.9:80 -> 10.0.1.95:59741 [AP] HTTP/1.1 201 Created. Date: Thu, 16 Nov 2006 03:00:16 GMT. Server: Microsoft-IIS/6.0. X-Powered-By: ASP.NET. MS-Exchange-Permanent-URL: http://e1.exmx.net/exchange/yourname.yourdomain.com/-FlatUrlSpace-/122cda661de1da48936f9 44bda4dde6e-3af8a8/122cda661de1da48936f944bda4dde6e-3f3383. Location: http://e1.exmx.net/exchange/yourname.yourdomain.com/Cal2/CC1.1163646061548.0.eml. Repl-UID: <rid:122cda661de1da48936f944bda4dde6e0000003f3383>. Content-Type: text/html. Content-Length: 110. Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, SUBSCRIBE, UNSUBSCRIBE, PO LL, BDELETE, BCOPY, BMOVE, BPROPPATCH, BPROPFIND, LOCK, UNLOCK. ResourceTag: <rt:122cda661de1da48936f944bda4dde6e0000003f3383122cda661de1da48936f944bda4dde6e0000003f4671>. GetETag: "122cda661de1da48936f944bda4dde6e0000003f4671". MS-WebStorage: 6.5.7638. Cache-Control: no-cache.

.

T 66.211.136.9:80 -> 10.0.1.95:59741 [AP] <body><h1>/exchange/yourname.yourdomain.com/Cal2/CC1.1163646061548.0.eml was created successfully</h1></body>.

Puede verificar que funcionó utilizando algo como Cadaver para consultar las propiedades del objeto a través de WebDAV de esta manera:

dav:/exchange/[email protected]/Cal2/> propget CC1.1163646061548.0.eml Fetching properties for `CC1.1163646061548.0.eml'': textdescription = this is a description contentclass = urn:content-classes:appointment supportedlock = <lockentry><locktype><transaction><groupoperation></groupoperation></transaction></locktype><locks cope><local></local></lockscope></lockentry> permanenturl = http://e1.exmx.net/exchange/[email protected]/-FlatUrlSpace-/122cda661de1da48936f944bda4dde6e- 3af8a8/122cda661de1da48936f944bda4dde6e-3f3383 getcontenttype = message/rfc822 id = AQEAAAAAOvioAQAAAAA/M4MAAAAA mid = -8992774761696198655 uid = E1+1382+1014+495066799@I1+1382+1014+6+495066799 isfolder = 0 resourcetype = method = PUBLISH getetag = "122cda661de1da48936f944bda4dde6e0000003f4671" lockdiscovery = outlookmessageclass = IPM.Appointment creationdate = 2006-11-16T03:00:16.549Z outlookmessageclass = IPM.Appointment creationdate = 2006-11-16T03:00:16.549Z ntsecuritydescriptor = CAAEAAAAAAABAC+MMAAAAEwAAAAAAAAAFAAAAAIAHAABAAAAARAUAL8PHwABAQAAAAAABQcAAAABBQAAAAAABRUAAAC nkePD6LEa8iIT/+gqDAAAAQUAAAAAAAUVAAAAp5Hjw+ixGvIiE//oAQIAAA== dtstamp = 2006-11-10T07:48:56.000Z lastmodified = 2006-11-16T03:00:16.565Z dtstart = 2006-11-22T19:30:00.000Z location = x44444 pc:6879 duration = 3600 htmldescription = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1"> <TITLE>this is a summary</TITLE> </HEAD> <BODY> <!-- Converted from text/plain format --> <P><FONT SIZE=2>this is a description</FONT> </P> </BODY> </HTML> ishidden = 0 parentname = http://e1.exmx.net/exchange/[email protected]/Cal2/ meetingstatus = TENTATIVE subject = this is a summary getcontentlength = 631 normalizedsubject = this is a summary isstructureddocument = 0 repl-uid = rid:122cda661de1da48936f944bda4dde6e0000003f3383 timezoneid = 0 displayname = CC1.1163646061548.0.eml href = http://e1.exmx.net/exchange/[email protected]/Cal2/CC1.1163646061548.0.eml nomodifyexceptions = 1 patternend = 2006-11-22T20:30:00.000Z isreadonly = 0 instancetype = 0 uid = AQEAAAAAPzODAAAAAAAAAAAAAAAA getlastmodified = 2006-11-16T03:00:16.565Z created = 2006-11-16T03:00:16.549Z sensitivity = 0 dtend = 2006-11-22T20:30:00.000Z hasattachment = 0 iscollection = 0 read = 1 resourcetag = rt:122cda661de1da48936f944bda4dde6e0000003f3383122cda661de1da48936f944bda4dde6e0000003f4671 patternstart = 2006-11-22T19:30:00.000Z priority = 0 sequence = 0