2008-09-17 24 views
6

Tôi đã cố gắng tìm ra điều này trong khoảng hai tuần. Tôi có thể tạo các mục email trong thư mục của mọi người, đọc các thư mục, tất cả nội dung đó nhưng đối với cuộc sống của tôi, tôi không thể tìm được bất kỳ thứ gì để làm việc với các lịch.Ví dụ/Cách tạo lịch hẹn bằng Exchange 03 Webdav và PHP?

Tôi có thể cung cấp các ví dụ về XML mà tôi đang gửi tới WebDav nhưng hy vọng có ai đó đã làm điều này và có ví dụ?

Trả lời

2

Tôi đã làm điều này trong một chương trình Java một vài năm trở lại, và cách tôi đã làm nó là PUT một tài liệu VCALENDAR vào thư mục. Một quirk là VCALENDAR phải được đính kèm trong một thông điệp RFC822. Đó là sự kết hợp kỳ lạ của WebDAV, email và iCAL/VCAL, nhưng nó hoạt động vào thời điểm Exchange 2003 được lưu trữ tại Link2Exchange.

Tôi chắc chắn có cách dễ dàng hơn, nhưng đây là những gì đã hiệu quả đối với tôi. Dưới đây tôi hiển thị một dấu vết gói tin tcpdump về những gì đã xảy ra. Có lẽ bạn nên sử dụng ngrep/tcpdump trên máy khách Outlook/Entourage của chính mình để xem nó làm gì.

Lưu ý rằng "Cal2" là tên của thư mục lịch kiểm tra của tôi. Bạn sẽ sử dụng "Lịch" cho thư mục lịch chính.

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

Bạn có thể xác nhận rằng nó làm việc sử dụng một cái gì đó giống như tử thi để truy vấn thuộc tính của đối tượng thông qua WebDAV như vậy:

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