views:

568

answers:

1

i have Exchange2007. and i am using the url:

"https://exchange2007.exchange.server.com/Exchange/username/calendar";

'calendar', or 'mailbox'( in your language! example, "boite de reception" in french or "calendário" in portuguese)

with that url that i'm using i can list my ressources, but can't send a mail or write an appointement! why?!?

See that i get a response of the server 207multistatus and ok, but the return a HTTP/1.1 404 Resource Not Found i wish a 201 created!!! (for my appointement)

someone have better ideia ? thx.

Console:

>>>>>>>  to  server  ---------------------------------------------------
PROPPATCH /Exchange/marcelo/calend%C3%A1rio HTTP/1.1
Authorization: Basic bWFyY2Vsb0BleGNoYW5nZTptdXN0YWZhMSQ=
Content-Type: text/xml; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/2.0final
Host: exchange2007.exchange.snap.com.br
Content-Length: 1407

<D:propertyupdate xmlns:D="DAV:">
   <D:set>
      <D:prop>
         <mapi xmlns="xmlns">
               http://schemas.microsoft.com/mapi/
         </mapi>
         <Cmd xmlns="urn:">
               saveappt
         </Cmd>
         <dtEnd xmlns="urn:schemas:calendar">
               2009-06-30T10:30:00.000Z
         </dtEnd>
         <contentclass xmlns="DAV">
               urn:content-classes:Appointment
         </contentclass>
         <Subject xmlns="urn:schemas:httpmail">
               Changed Test Appointment Subject
         </Subject>
         <Location xmlns="urn:schemas:calendar">
               do
         </Location>
         <responserequested xmlns="urn:schemas:calendar">
               0
         </responserequested>
         <saveappt xmlns="urn:schemas:calendar:cmd">
               1
         </saveappt>
         <ressource xmlns="DAV">
               https://exchange2007.exchange.snap.com.br/Exchange/marcelo/calendárioassuntoteste.EML
         </ressource>
         <alldayevent xmlns="urn:schemas:calendar">
               0
         </alldayevent>
         <to xmlns="urn:schemas:header">
               adrien
         </to>
         <dtStart xmlns="urn:schemas:calendar">
               2009-06-30T10:00:00.000Z
         </dtStart>
         <isfolder xmlns="DAV">
               0
         </isfolder>
         <cmd xmlns="Cmd">
               saveappt
         </cmd>
         <HtmlDescription xmlns="urn:schemas:httpmail">
               Let's meet here
         </HtmlDescription>
         <outlookmessageclass xmlns="http://schemas.microsoft.com/exchange/subject-utf8=Appointment"&gt;
               IPM.Appointement
         </outlookmessageclass>
         <instancetype xmlns="urn:schemas:calendar">
               0
         </instancetype>
         <meetingstatus xmlns="urn:schemas:calendar">
               CONFIRMED
         </meetingstatus>
         <finvited xmlns="urn:schemas:mapi">
               0
         </finvited>
         <BusyType xmlns="urn:schemas:calendar">
               BUSY
         </BusyType>
      </D:prop>
   </D:set>
</D:propertyupdate>
------------------------------------------------------------------------

<<<<<<< from server  ---------------------------------------------------
HTTP/1.1 207 Multi-Status
Date: Thu, 16 Jul 2009 20:29:40 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MS-Exchange-Permanent-URL: https://exchange2007.exchange.snap.com.br/Exchange/marcelo/-FlatUrlSpace-/b3ee92320938254c828a96e2e269a417-a6271d
Repl-UID: <rid:b3ee92320938254c828a96e2e269a417000000a6282e>
Content-Type: text/xml
Content-Length: 825
ResourceTag: <rt:b3ee92320938254c828a96e2e269a417000000a6282eb3ee92320938254c828a96e2e269a41700545bb4844c>
MS-WebStorage: 08.01.10240

<a:multistatus
      xmlns:a="DAV:"
      xmlns:b="xmlns"
      xmlns:c="urn:"
      xmlns:d="urn:schemas:calendar"
      xmlns:e="DAV"
      xmlns:f="urn:schemas:httpmail"
      xmlns:g="urn:schemas:calendar:cmd"
      xmlns:h="urn:schemas:header"
      xmlns:i="Cmd"
      xmlns:j="http://schemas.microsoft.com/exchange/subject-utf8=Appointment"
      xmlns:k="urn:schemas:mapi">

   <a:response>
      <a:href>
            https://exchange2007.exchange.snap.com.br/Exchange/marcelo/Calend%C3%A1rio
      </a:href>
      <a:propstat>
         <a:status>
               HTTP/1.1 200 OK
         </a:status>
         <a:prop>
            <b:mapi>
            </b:mapi>
            <c:Cmd>
            </c:Cmd>
            <d:dtEnd>
            </d:dtEnd>
            <e:contentclass>
            </e:contentclass>
            <f:Subject>
            </f:Subject>
            <d:Location>
            </d:Location>
            <d:responserequested>
            </d:responserequested>
            <g:saveappt>
            </g:saveappt>
            <e:ressource>
            </e:ressource>
            <d:alldayevent>
            </d:alldayevent>
            <h:to>
            </h:to>
            <d:dtStart>
            </d:dtStart>
            <e:isfolder>
            </e:isfolder>
            <i:cmd>
            </i:cmd>
            <f:HtmlDescription>
            </f:HtmlDescription>
            <j:outlookmessageclass>
            </j:outlookmessageclass>
            <d:instancetype>
            </d:instancetype>
            <d:meetingstatus>
            </d:meetingstatus>
            <k:finvited>
            </k:finvited>
            <d:BusyType>
            </d:BusyType>
         </a:prop>
      </a:propstat>
   </a:response>
</a:multistatus>
------------------------------------------------------------------------

>>>>>>>  to  server  ---------------------------------------------------
PROPFIND /Exchange/marcelo/calend%C3%A1rio HTTP/1.1
Authorization: Basic bWFyY2Vsb0BleGNoYW5nZTptdXN0YWZhMSQ=
Content-Type: text/xml; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/2.0final
Host: exchange2007.exchange.snap.com.br
Content-Length: 207
Depth: 0

<D:propfind xmlns:D="DAV:">
   <D:prop>
      <D:displayname>
      </D:displayname>
      <D:getcontentlength>
      </D:getcontentlength>
      <D:getcontenttype>
      </D:getcontenttype>
      <D:resourcetype>
      </D:resourcetype>
      <D:getlastmodified>
      </D:getlastmodified>
      <D:lockdiscovery>
      </D:lockdiscovery>
   </D:prop>
</D:propfind>
------------------------------------------------------------------------

<<<<<<< from server  ---------------------------------------------------
HTTP/1.1 207 Multi-Status
Date: Thu, 16 Jul 2009 20:29:40 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Type: text/xml
Accept-Ranges: rows
MS-WebStorage: 08.01.10240
Transfer-Encoding: chunked

<a:multistatus
      xmlns:a="DAV:"
      xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"
      xmlns:c="xml:">

   <a:response>
      <a:href>
            https://exchange2007.exchange.snap.com.br/Exchange/marcelo/Calend%C3%A1rio/
      </a:href>
      <a:propstat>
         <a:status>
               HTTP/1.1 200 OK
         </a:status>
         <a:prop>
            <a:displayname>
                  Calendário
            </a:displayname>
            <a:getcontentlength b:dt="int">
                  0
            </a:getcontentlength>
            <a:resourcetype>
               <a:collection>
               </a:collection>
            </a:resourcetype>
            <a:getlastmodified b:dt="dateTime.tz">
                  2009-07-16T20:29:40.098Z
            </a:getlastmodified>
            <lockdiscovery xmlns="DAV:">
            </lockdiscovery>
         </a:prop>
      </a:propstat>
      <a:propstat>
         <a:status>
               HTTP/1.1 404 Resource Not Found
         </a:status>
         <a:prop>
            <a:getcontenttype>
            </a:getcontenttype>
         </a:prop>
      </a:propstat>
   </a:response>
</a:multistatus>
A: 

I don't know anything about Exchange, but here are two WebDAV related comments.

1) Your property "mapi" in the namespace "xmlns" looks fishy. Not even Microsoft comes up with a namespace name that bad (I hope).

2) In the second server response, you are getting a status of 200 OK for most properties, except for getcontenttype (which is indeed 404).

Other than that: are you sure you it's the right thing to PROPPATCH against a calendar URL to do what you want?

Julian Reschke
well, thx for the ansewr, but.. yeah, that works on exchange2003 but does't on 2007!!!status 200, yes the server is there, 404 propstat! resource not found, i guess is that i need to say to exchange2007 where to create this new appointement like myapp.EML ... well, i dont know how to.
adrien