我正在编写一个 PHP 服务来通过 WebDAV 查询 Exchange 服务器。这项服务已经运行了大约一个月,没有任何问题,但今天遇到了一个问题,当一封带有以下主题行的电子邮件到达邮箱时:
FW:每日批准报告:供应商/主 007297
该消息存储在文件“FW: Daily Approval Report: Vendor/Master 007297.EML”中,并通过 url 引用为:
FW:%20Daily%20Approval%20Report:%20Vendor_xF8FF_Master%20007297.EML
我一直在使用 PHPrawurlencode()
函数将消息文件名转换为对应的 URL,但在这种情况下会rawurlencode()
返回一个不匹配的字符串:
FW%3A%20Daily%20Approval%20Report%3A%20Vendor%2FMaster%20007297.EML
我不是 Exchange 的专家,也不知道如何匹配它的编码。有人可以告诉我是否有一个映射可以用来编写我自己的函数吗?我假设简单地替换/
和\_xF8FF\_
跳过冒号会导致一个月后再次追查这个错误,但谷歌并没有帮助生成完整的例外列表。