问题标签 [php-ews]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php-ews:访问共享日历?
使用 php-ews:https ://github.com/jamesiarmes/php-ews
根据此示例,我可以从我自己的日历中列出事件:https://github.com/jamesiarmes/php-ews/wiki/Calendar:-Get-List-(Retrieving-Id-and-ChangeKey)但之后寻找解决方案几个小时我仍然无法找到访问共享日历的方法。
这个问题类似,但没有答案:EWS:访问共享日历
通过查看该搜索结果和其他各种搜索结果(我在 Google 上搜索了“ews 共享日历”的许多变体),我必须找到共享日历的位置,获取 ID,然后使用它。但我无法做到这一点。任何人都可以帮忙吗?
php - 使用 PHP-EWS 访问另一个邮箱日历事件
在 PHP-EWS 库(https://github.com/jamesiarmes/php-ews)中,我可以使用以下代码访问特定用户的日历事件:https ://github.com/jamesiarmes/php-ews/wiki/日历:-Get-List-(Retrieving-Id-and-ChangeKey) 在所有库功能中,我们始终使用单个用户的身份验证:
但是如何从另一个用户的邮箱中获取日历事件?如果我在 LDAP 中有一个具有管理员权限的帐户,是否可以使用 PHP-EWS 库从另一个用户邮箱访问日历事件?还是只能访问身份验证中使用的用户帐户凭据的邮箱?
有没有人使用带有 LDAP 管理员帐户的 PHP-EWS 库从另一个用户邮箱访问日历事件的示例?
谢谢你。
php - PHP SoapServer 格式化
我是 SOAP 新手,并尝试使用 PHP 的 SoapServer 类格式化 SOAP 响应。
知道这是用于EWS 推送订阅回调服务并且我正在使用php-ews库可能很有用。我已设法订阅 EWS 推送订阅,但在格式化 EWS 期望我的回拨服务提供的回复时遇到问题。
我需要我的 PHP SOAP 服务返回的以下 SOAP 响应:
相反,我得到以下输出:
我的 PHP 服务代码:
对我的服务的 SOAP 调用如下:
所以我想我的问题是如何使用 PHP SoapServer 类更改 SOAP 响应的格式?我是否需要添加 WSDL 或将类映射传递给 SoapServer 构造函数?
如果无法使用 SoapServer 类执行此操作,除了创建字符串缓冲区并手动将其传回之外,还有其他方法可以执行此操作吗?
任何帮助将不胜感激。
php - 使用 php-ews API 获取分发列表中的联系人列表
我正在使用 PHP-EWS 获取联系人列表。此联系人列表是联系人根文件夹中的分发列表。
实际上我正在使用这个:
我能够获取分发列表的 ID,但无法获取其中的电子邮件地址。我怎样才能得到它的 stdClass 对象或数组?
curl - PHP-EWS 卡在 curl 7.21.6
我开始对 PHP EWS 的一个问题失去理智。
现在,我有一个客户的服务器是 Ubuntu 11.10 和 CURL 7.21.6(我对此无能为力)和我的开发服务器是 Windows Server 2008 R2 和 CURL 7.30.0。
在两台服务器中,我都使用 PHP-EWS 库配置了两个 Exchange 帐户。
一种是 Exchange 2010 服务器。
另一种是在线交换。
Exchange Online 帐户在两台服务器上都能完美运行。
Exchange 2010 帐户可在我的 Windows 服务器上运行,但不能在远程 Ubuntu 服务器上运行。
由于我无法进行调试(我只有一个用于测试的网页),我只能进行假设。
旧服务器上的旧 CURL 版本会不会有问题?还是操作系统本身是?
php - PHP-EWS 在多个附件上失败
以下代码适用于单个附件,但适用于多个文件。
$ews->SendItem() 返回此错误:
未捕获的 SoapFault 异常:[a:ErrorSchemaValidation] 请求模式验证失败:缺少必需的属性“Id”。
我在这里想念什么?
php - PHP-EWS while 循环错误无法重新声明类 EwsSendEmail
我正在尝试从 SQL 数据库中提取电子邮件,然后使用 EWS 通过 PHP 向这些电子邮件中的每一个发送电子邮件。但是,当我将 PHP-EWS 代码https://github.com/jamesiarmes/php-ews/放在 while 循环中时,它给了我错误"Cannot redeclare class EwsSendEmail"。
这里是代码的布局,看起来我不能在 while 循环中拥有类。但不确定我还能如何从 SQL 表中获取所有数据并为每个数据发送一封唯一的电子邮件,而且我对类的使用不是很熟悉。如果我通过在 SELECT 之后添加 TOP 1 仅从 SQL 中提取一条记录,则该代码可以正常工作。我很感激任何帮助。
xml - 使用 GroupBy 的 EWS FindItem 结果中的意外元素
我正在使用 EWS(Exchange Web 服务)从我的 Exchange 2013 测试服务器访问数据。我正在使用 PHP 和(有些过时的)php-ews 存储库来执行此操作:github-jamesiarmes-php-ews和更新且支持作曲家的版本:github-deakin-php-ews
我可以按照“jamesiarmes”的 wiki 中所述对 Exchange 服务进行基本调用,但是当我尝试使用 GroupBy 方法时遇到了一些麻烦:如何:在 Exchange 中使用 EWS 执行分组搜索
正如您在 How-to 指南的 XML 响应中看到的那样,通常该<Groups>
元素应包含零个或多个<GroupItems>
然后将包含项目(在我的情况下为 CalendarItems)。但是我从测试服务器返回的是<Group>
元素,而不是<GroupItems>
导致我的 $response 对象不完整。
我使用的代码:
这是var_dump()
来自$response
:
我设法使用__getLastResponse()
(PHP 文档)收集 XML 响应,发现它确实获得了所有想要的项目,但是在<Group>
元素中而不是<GroupItems>
在 SoapClient 中为<Groups>
元素返回一个空对象。
现在我想知道问题出在哪里:
- 操作指南是否已过时?我在 EWS 的其他文档中没有找到对这个
<Group>
元素的任何引用,所以我认为这不是问题。 - 我的 Exchange 服务器是在使用另一个 XML 架构还是很奇怪?
- php-ews 模式是否已过时?我应该用最终的解决方案来分叉“deakin”回购吗?
我已经找到了一种通过调整 php-ews 模式来使其工作的方法,但是如果问题出在我的测试服务器上,我就不需要费心制作一个 fork 了……我也会在下面发布我当前的解决方案。
我将不胜感激对此的任何意见....
php - php-ews 访问所有日历,包括共享
我有一个与我共享的会议室日历。我希望做的是使用 php-ews 来拉出该日历时间表以进行显示。到目前为止,我已经能够毫无问题地轻松显示我的 OWN 日历。这是使用以下代码完成的:https://github.com/jamesiarmes/php-ews/wiki/Calendar:-Get-List-(Retrieving-Id-and-ChangeKey)
我看到一个类似的问题(php-ews:访问共享日历?)有人建议在“仅查看日历文件夹”部分中添加这些行:
这并没有破坏代码或任何东西,但它也没有改变结果。结果,我仍然只得到了我自己的日历。我已经看到提到模仿是一种方法,但由于日历已经与我共享,我认为没有必要这样做。有什么我忽略的吗?我确实有日历的身份路径,即(用大写字母替换识别细节):DOMAIN.com/OU/USERNAME:\calendar\NAME OF CALENDAR
我希望这足以帮助解决问题。关于堆栈溢出有几个问题处理这个问题(但没有解决我问题的答案),所以如果我们把它排序,我一定会把解决方案传递给这些位置。
php - PHP-EWS:在日历项目上设置多个扩展属性
是否可以使用 PHP EWS 在日历项上设置多个自定义属性?除了这个检索扩展属性的示例之外,我找不到任何关于此的文档。我能够让它适用于单个字段,但我想知道您是否可以设置多个自定义属性。API 似乎暗示了这种可能性。
例如,以下属性在 ExtendedPropertyType.php 中定义:
该$Values
属性似乎是一个数组,但我从来没有成功地在那里存储任何东西。我的解决方法是将一组值折叠成 JSON 字符串并将其存储在$Value
属性中(请参阅下面的答案)。这行得通,但感觉有点骇人听闻。有没有更好的办法?