PHP-EWS“Soap 客户端返回状态 404”

2024-01-23

所以,我正在使用php-ews http://jamesarmes.com/php-ews库连接到我的 Microsoft Office 365 Exchange 电子邮件帐户以阅读电子邮件。我已成功连接到它,并设法检索我需要的电子邮件列表。

现在的问题是我无法获取消息正文。阅读有关 Exchange Web Services 的文档,它说无法使用 FindItem() 获取正文,只能使用 GetItem() 获取,这没关系。

现在我看到的问题如下: 我尝试了我能找到的所有可能的示例,并且代码没有任何错误,它只是说“Soap 客户端返回 404 状态”。

如果有人知道在哪里寻找解决方案,请告诉我。

EDIT:

$ews = new Client('outlook.office365.com/EWS/OData/Me/Inbox/Messages', '###', '###', ClientEWS::VERSION_2010_SP2);

    $request = new FindItemType();

    $request->ItemShape = new ItemResponseShapeType();
    $request->ItemShape->BaseShape = DefaultShapeNamesType::DEFAULT_PROPERTIES;
    $request->ItemShape->BodyType = BodyTypeResponseType::BEST;

    $request->Traversal = ItemQueryTraversalType::SHALLOW;

    $request->ParentFolderIds = new NonEmptyArrayOfBaseFolderIdsType();
    $request->ParentFolderIds->DistinguishedFolderId = new DistinguishedFolderIdType();
    $request->ParentFolderIds->DistinguishedFolderId->Id = DistinguishedFolderIdNameType::INBOX;

    // sort order
    $request->SortOrder = new NonEmptyArrayOfFieldOrdersType();
    $request->SortOrder->FieldOrder = array();
    $order = new FieldOrderType();
    // sorts mails so that oldest appear first
    // more field uri definitions can be found from types.xsd (look for UnindexedFieldURIType)
    $order->FieldURI = new PathToUnindexedFieldType();
    $order->FieldURI->FieldURI = 'item:DateTimeReceived';
    $order->Order = 'Ascending';
    $request->SortOrder->FieldOrder[] = $order;

    try{
        //getting list of all emails - works perfectly
        $result = $ews->FindItem($request);

        if ($result->ResponseMessages->FindItemResponseMessage->ResponseCode == 'NoError' && $result->ResponseMessages->FindItemResponseMessage->ResponseClass == 'Success') {
            $count = $result->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView;
            $request = new GetItemType();
            $request->ItemShape = new ItemResponseShapeType();
            $request->ItemShape->BaseShape = DefaultShapeNamesType::ALL_PROPERTIES;
            for ($i = 0; $i < $count; $i++){
                $message_id = $result->ResponseMessages->FindItemResponseMessage->RootFolder->Items->Message[$i]->ItemId->Id;

                $messageItem = new ItemIdType();
                $messageItem->Id = $message_id;
                $request->ItemIds->ItemId[] = $messageItem;
            }

            // Here is your response
            // It throws an error here with the message "Soap client returned status of 404"
            $response = $ews->GetItem($request);

            print_r($response);
        }
        //print_r($result);
    } catch(\Exception $e) {
        echo $e->getMessage();
    }

您似乎正在尝试使用 Office365 的新 REST 端点

'outlook.office365.com/EWS/OData/Me/Inbox/Messages'

但是您尝试发出 EWS SOAP 请求,您应该用于 EWS SOAP 的端点是

https://outlook.office365.com/EWS/Exchange.asmx https://outlook.office365.com/EWS/Exchange.asmx

您可能想考虑使用新的 REST 接口作为 EWS/SOAP 的替代方案,但随后您需要使用 REST 库。ouauth 等https://dev.outlook.com/restapi https://dev.outlook.com/restapi.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP-EWS“Soap 客户端返回状态 404” 的相关文章

  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • Php mysql 30秒后执行任务

    如何让 mysql 查询命令在访问 php 站点 30 秒后执行 您可以对执行 mysql 查询的 php 脚本发出 AJAX 请求 在 js 中使用计时器
  • 如何处理 PHP 中浮点数的奇怪舍入

    众所周知 浮点运算并不总是完全准确 但是如何处理它的不一致之处呢 As an example in PHP 5 2 9 this doesn t happen in 5 3 echo round 14 99225 4 14 9923 ech
  • php 或 zend 中国际电话号码验证的正则表达式是什么?

    我有一个 zend 表单 其中有一个电话号码字段 并且必须检查验证器 我决定为此使用正则表达式 我搜索了谷歌 但我得到的结果不起作用 谁能给我提供正则表达式 这是我的代码 phone new Zend Form Element Text p
  • 有没有办法在不使用 foreach 或其他函数的情况下在 PHP 中内爆关联数组的键和值?

    我有一个像这样的关联数组 myarray array a gt 1 b gt 2 c gt 3 我想显示数组键和值 如下所示 a is 1 b is 2 c is 3 我不想使用 print r 或 var dump 来执行此操作 我也不想
  • PHP:STR 替换为链接

    我有这个 PHP 聊天框 如果我在聊天框中键入链接 它不会将其显示为链接 我如何使用 STR 替换来执行此操作 它应该响应诸如 http http com nl www www 之类的内容 我的其他 STR 替换行如下所示 bericht
  • 如何在 Laravel 中 session_write_close() ?

    Running session write close before sleep 在 Laravel 中似乎不起作用 因为会话仍然被其他请求阻止 直到当前连接完成 我试图sleep 在 Laravel 中 不会阻止其他请求 发现 sessi
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 在 Laravel 中按数据透视表 create_at 排序

    在我的数据库中 我有以下表格 courses id 名称 创建时间 更新时间 students id 名称 创建时间 更新时间 课程 学生 id course id student id created at updated at 我正在尝
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 我的 PHP 代码不会将记录插入到 mySQL 数据库表中[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的网站上
  • Lumen 微框架 => php artisan key:generate

    我正在尝试 PHP 微框架 Lumen 来自 Laravel 我的第一步就是调查 env example文件并复制一份以供我使用 env文件 就像 Laravel 中一样 有一个变量 APP KEY 现在我尝试了简单的命令php artis
  • 如何让Symfony2直接加载CSS、JS文件而不是通过PHP?

    老问题 请参阅下面的更新版本 我的开发环境不是最快的 每个 PHP 请求大约需要 500 毫秒 它开始成为 Symfony2 资源文件的问题 因为每个资源文件都是通过 Symfony 的内部控制器请求的 http localhost myp
  • 使用 PHP 修剪字符串开头的任何零

    用户将在字段中填写与其帐户相关的数字 不幸的是 一些用户会在号码开头添加零来组成六位数字 例如 000123 001234 而其他用户则不会 例如 123 1234 我想 修剪 前面带有零前缀的用户的数字 因此如果用户输入 000123 它
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • 错误:无法解析 setupPlatform 的所有参数:(?, [object Object], [object Object])

    我将 Angular 更新到版本 8 但遇到了一个小问题 当我使用离子服务启动应用程序时 Error Can t resolve all parameters for setupPlatform object Object object O
  • 在Python中模拟assert_used_with

    我无法理解为什么以下代码未通过 test py import mock import unittest from foo import Foo class TestFoo unittest TestCase mock patch foo B
  • 在 Angular 单元测试中模拟 ngResource

    我有一个ngResourceMockFactory看起来像这样 function use strict angular module app factory NgResourceMock ngResourceMockFactory ngRe
  • Jupyter Lab 显示小部件的问题(javascript 错误)

    我在新 PC 上复制 Jupyter Lab 安装时遇到问题 它在我的前一个上工作得很好 我无法显示简单的小部件 例如 ipywidgets 或 ipyvuetify 中的复选框 我检查了 jupyter widgets 是否已通过 jup
  • 跟踪源代码变体

    我很快就开始维护一系列包含相同嵌入式软件变体的产品 由于我已经使用 git 一年了并且非常欣赏它 所以我很可能使用它来进行源代码控制 我可以看到多种用于维护固件变体的选项 但没有一个让我太满意 您在自己的工作中应用了哪些最佳实践 我能想到的
  • 无法更改 iOS 7 (iPad) 上静态表视图单元格的背景颜色

    在 iPad 设备上运行时 我无法更改 iOS 7 上静态 UITableViewCells 的背景颜色 您可以通过以下设置轻松检查这一点 在 Xcode 5 中创建一个带有两个故事板的新通用项目 在每个故事板中 只放置一个控制器 表视图控
  • 代码 14:无法打开数据库

    我知道这个问题以前已经被问过 但是 问题是 相同的代码 用于数据库处理程序 适用于另一个应用程序 但不适用于我当前正在处理的应用程序 我什至通过检查设置中的权限来确保授予权限 这是日志猫 05 13 15 35 45 693 29696 2
  • 在 Java 8 中使用 Java 7 HashMap

    我已将 Java 应用程序更新到 Java 8 该应用程序严重依赖于 HashMap 当我运行基准测试时 我看到了不可预测的行为 对于某些输入 应用程序的运行速度比以前更快 但对于较大的输入 它的速度不断变慢 我检查了分析器 最耗时的操作是
  • 在矩阵上使用 ufunc.at

    假设我有以下 numpy 数组 gt gt gt a np zeros 10 gt gt gt a array 0 0 0 0 0 0 0 0 0 0 我可以用numpy ufunc at http docs scipy org doc n
  • Android 列表视图刷新

    我有一个 ListView 它通过数组向我显示一些数据 该数组位于另一个类中 我通过它的对象访问它 每当我通过上下文菜单从 ListView 中删除元素时 列表不会刷新 但该元素会从数组中删除 我怎样才能刷新列表来显示这一点 Code pu
  • jQuery 和 django-rest-framework-bulk:发送列表

    我需要使用 django rest Framework bulk mixins 将对象列表发送到视图 class APIPicksView mixins ListModelMixin bulk mixins BulkCreateModelM
  • 如何在散景中显示补丁的图例项

    在以下设置中 我根据基本示例创建面积图 如何自动甚至以编程方式获取输入的图例 现在我只得到带有一个项目 a 和第一种颜色的图例 from bokeh plotting import patches x2 for a in areas lis
  • 四舍五入两位小数

    double x 9 29 double y 8 69 double diff floor x y 100 0 5 100 0 这给了我 diff 为 0 6 但我需要它为 0 60 两位小数 有人可以帮我解决这个问题吗 double 的值
  • .htaccess 将所有子文件夹内容(带或不带结尾斜杠)重定向到同一子文件夹

    我想重定向以下网址 gallery image 1 gallery image 1 gallery image 2 gallery image 2 to gallery 但这比乍看起来要困难 这是来自 htaccess RewriteEng
  • Django,按日期范围内指定的月份和年份进行过滤

    我有以下型号 class Destination Deal models Model name models CharField Nombre max length 200 class Departure Date models Model
  • Javascript 事件似乎没有添加到动态生成的文本框中

    我为 JavaScript 中动态添加的文本框添加了 onkeyup javascript 但它似乎不起作用 var cell4 row insertCell 3 cell4 setAttribute align center var e3
  • JPEG 解压缩在 Windows 体系结构中不一致

    我正在使用不同版本的 Windows 的一堆计算机上测试 JPEG 解压缩 所有这些计算机都安装了 NET 4 我正在针对 NET 2 和 任何 CPU 平台目标进行编译 以下代码在不同的系统上产生不同的输出 Bitmap bmp Bitm
  • 优化“rootn(x, n)”的低精度近似

    rootn float t x int t n is a function that computes the n th root x1 n and is supported by some programming languages su
  • Windows 批处理:从文本文件设置变量

    我目前正在寻找一种通过 txt 文档中的链接在 Windows 批处理文件中设置变量的方法 例如 如果文本文件读取为 http website1 com http website2 com http website3 com 我希望可以将它
  • PHP-EWS“Soap 客户端返回状态 404”

    所以 我正在使用php ews http jamesarmes com php ews库连接到我的 Microsoft Office 365 Exchange 电子邮件帐户以阅读电子邮件 我已成功连接到它 并设法检索我需要的电子邮件列表 现