2011-11-03 2 views
0

Utilisation des bibliothèques WebDav de Troy WolfIdentification des pièces jointes en résultat WebDav

J'utilise la requête suivante pour tirer des résultats du serveur Exchange

$search = <<<END 
<?xml version="1.0"?><a:searchrequest xmlns:a="DAV:" xmlns:s="http://schemas.microsoft.com/exchange/security/"> 
<a:sql>SELECT "DAV:displayname", 
"urn:schemas:httpmail:from", 
"urn:schemas:httpmail:subject", 
"urn:schemas:httpmail:textdescription", 
"urn:schemas:httpmail:htmldescription", 
"urn:schemas:httpmail:hasattachment", 
"urn:schemas:httpmail:attachmentfilename", 
"urn:schemas:httpmail:sender" FROM "$mailbox" WHERE "DAV:isfolder"=False AND "http://schemas.microsoft.com/exchange/outlookmessageclass"='IPM.NOTE'</a:sql> 
</a:searchrequest> 
END 

Cela fonctionne cependant le retour revient comme

array 
    0 => 
    object(stdClass)[10] 
     public '_attr' => 
     object(stdClass)[11] 
     public 'A_STATUS' => 
     array 
      0 => 
      object(stdClass)[12] 
       public '_attr' => 
       object(stdClass)[13] 
        ... 
       public '_text' => string 'HTTP/1.1 200 OK' (length=15) 
     public 'A_PROP' => 
     array 
      0 => 
      object(stdClass)[14] 
       public '_attr' => 
       object(stdClass)[15] 
        ... 
       public 'A_DISPLAYNAME' => 
       array 
        ... 
       public 'D_FROM' => 
       array 
        ... 
       public 'D_SUBJECT' => 
       array 
        ... 
       public 'D_TEXTDESCRIPTION' => 
       array 
        ... 
       public 'D_HTMLDESCRIPTION' => 
       array 
        ... 
       public 'D_HASATTACHMENT' => 
       array 
        ... 
    1 => 
     object(stdClass)[28] 
     public '_attr' => 
      object(stdClass)[29] 
     public 'A_STATUS' => 
      array 
      0 => 
      object(stdClass)[30] 
       public '_attr' => 
       object(stdClass)[31] 
        ... 
       public '_text' => string 'HTTP/1.1 404 Resource Not Found' (length=31) 
     public 'A_PROP' => 
      array 
      0 => 
       object(stdClass)[32] 
       public '_attr' => 
        object(stdClass)[33] 
        ... 
       public 'D_ATTACHMENTFILENAME' => 
        array 
        ... 
       public 'D_SENDER' => 
        array 
        ... 

Qu'un fichier soit attaché ou non, D_ATTACHMENTFILENAME est retourné avec un 404. Des idées pourquoi? - ne peut pas récupérer la liste des fichiers joints pour les emails via un service webdav.

tl;

Répondre

1

Vous ne pouvez pas obtenir les noms de fichier des pièces jointes en utilisant une requête de recherche. Au lieu de cela, filtrez les éléments dont le hasattachment est défini sur 1. Pour chacun de ces éléments, émettez une requête X-MS-ENUMATTS pour obtenir les propriétés de pièce jointe.

+0

J'aurais dû marquer cela plus tôt, mais j'ai trouvé la réponse par moi-même et j'ai oublié de vérifier. Encore une bonne réponse, j'espère que la prochaine fois que je le ferai, je me souviendrai de la référence. Merci Henning! –

Questions connexes