2 Stimmen

MSExchange URL-Kodierung

Ich schreibe einen PHP-Dienst zur Abfrage eines Exchange-Servers über WebDAV. Dieser Dienst ist seit etwa einem Monat ohne Probleme in Betrieb, hatte aber heute ein Problem, als eine E-Mail mit der folgenden Betreffzeile in der Mailbox ankam:

FW: Täglicher Genehmigungsbericht: Lieferant/Master 007297

Die Nachricht ist in der Datei "FW: Daily Approval Report: Vendor/Master 007297.EML" gespeichert und wird über eine Url referenziert als:

FW:%20Daily%20Approval%20Report:%20Vendor_xF8FF_Master%20007297.EML

Ich hatte das PHP rawurlencode() Funktion, um den Dateinamen der Nachricht in sein URL-Gegenstück zu übersetzen, aber in diesem Fall rawurlencode() gibt eine nicht übereinstimmende Zeichenfolge zurück:

FW%3A%20Daily%20Approval%20Report%3A%20Vendor%2FMaster%20007297.EML

Ich bin kein Guru in Sachen Exchange und weiß nicht, wie ich die Kodierung anpassen kann. Kann mir jemand sagen, ob es eine Zuordnung gibt, die ich verwenden kann, um meine eigene Funktion zu schreiben? Ich nehme an, dass ich einfach / con \_xF8FF\_ und das Auslassen von Doppelpunkten wird dazu führen, dass wir diesen Fehler in einem Monat erneut suchen müssen, aber Google war nicht hilfreich, eine vollständige Liste der Ausnahmen zu erstellen.

3voto

Ich habe ein bisschen gegoogelt, aber ich konnte die vollständige Referenz der Zeichen, nach denen Sie suchen, nicht finden.
Das Einzige, was ich entdeckt habe, ist, dass die folgenden fünf Zeichen in Exchange eine besondere Kodierung haben:

  • Schrägstrich '/' wird als _xF8FF_ kodiert
  • Fragezeichen '?' wird als _x003F_ kodiert
  • Backslash '\' wird kodiert als _xF8FE_
  • Tilde '~' wird kodiert als _x007E_
  • Das Euro-Symbol '€' wird verschlüsselt als _x0080_

Vielleicht hilft es, einen Blick auf die Quelle des Ximian Connector für Microsoft Exchange, genauer gesagt auf der Seite " e2k_uri_append_encoded "Funktion, in Zeile 280.
Der Ximian Connector ermöglicht es Ximian Evolution, als Microsoft Exchange-Client zu fungieren, indem er mit Microsoft Exchange-Servern über das WebDAV-Protokoll kommuniziert, so dass er genau mit demselben Problem zu kämpfen hat, auf das Sie gestoßen sind.

1voto

eL-Prova Punkte 1060

Welchen Exchange Server verwenden Sie? Denken Sie daran, dass WebDAV nicht mehr unterstützt wird. ES2007 unterstützt WebDAV und Exchange Web Services. ES2010 unterstützt nur Exchange Web Services. Allerdings ist die Kodierung festgelegt ;-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X