2008-09-17 20 views

Odpowiedz

2

Zrobiłem to w programie Java kilka lat temu, a sposób w jaki to zrobiłem polegał na umieszczeniu dokumentu VCALENDAR w folderze. Jednym dziwactwem jest to, że VCALENDAR musiał być zamknięty w komunikacie RFC822. To dziwne połączenie WebDAV, e-mail i iCAL/VCAL, ale działało w tym czasie na Exchange 2003 hostowanym w Link2Exchange.

Jestem pewien, że jest łatwiejszy sposób, ale to właśnie dla mnie zadziałało. Poniżej pokazuję ślad pakietu tcpdump, co się stało. Powinieneś prawdopodobnie użyć polecenia ngrep/tcpdump na swoim kliencie Outlook/Entourage, aby zobaczyć, co robi.

Należy pamiętać, że "Cal2" to nazwa mojego folderu z kalendarzem testowym. W głównym folderze kalendarza możesz użyć "Kalendarza".

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>. 

Można sprawdzić, czy to zadziałało, używając coś podobnego Cadaver kwerendy właściwości obiektu przy użyciu protokołu WebDAV tak:

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