【问题标题】:PHP Exchange Web Services - get message bodyPHP Exchange Web 服务 - 获取消息正文
【发布时间】:2012-06-01 07:34:05
【问题描述】:

我正在使用PHP EWS 库,并使用this example 获取消息列表,效果很好。

它会提取发件人、收件人、主题、时间等详细信息。我尝试查看所有库,但无法练习如何提取邮件正文和附件。

有什么想法吗?

【问题讨论】:

    标签: php exchange-server exchangewebservices


    【解决方案1】:

    在 PHP EWS wiki 中有很好的描述,就在这里:https://github.com/jamesiarmes/php-ews/wiki/Email-:-Retrieve-All-Email-Attachments

    编辑:使用上面链接的整个示例来获取电子邮件附件,并仅使用其中的一部分来获取消息:

    $message_id = ''; // Id of the email message
    
    $ews = new ExchangeWebServices($host,  $user, $password);
    
    $request = new EWSType_GetItemType();
    
    $request->ItemShape = new EWSType_ItemResponseShapeType();
    $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;
    
    $request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType();
    $request->ItemIds->ItemId = new EWSType_ItemIdType();
    $request->ItemIds->ItemId->Id = $message_id; 
    
    $response = $ews->GetItem($request);
    
    if( $response->ResponseMessages->GetItemResponseMessage->ResponseCode == 'NoError' &&
        $response->ResponseMessages->GetItemResponseMessage->ResponseClass == 'Success' ) {
    
        $message = $response->ResponseMessages->GetItemResponseMessage->Items->Message;
    }
    

    此时您拥有$message。要访问正文,请使用 $message->body - 它是一个带有 bodyType 等的对象 - 要实际读取消息正文内容,请使用 $message->body->_

    【讨论】:

    • 是的,谢谢,我看到了,但不幸的是,它对获取邮件正文没有帮助。
    • 嗨,我在获取电子邮件正文时遇到了同样的问题..我尝试了上面的代码,但它对我不起作用.. $message 变量结果为空...我有将问题与代码一起发布在这里:stackoverflow.com/questions/12300863/…
    • 在您的问题中回复,您需要的所有信息都在我的回答中,就在示例代码下方。
    • 我已经更新了我的代码。我现在得到一个完整的 $message 对象。以前我错过了“RootFolder”属性。但是 $message 对象不包含“body”属性。请检查我的更新以查看 $message 变量的 print_r() 输出。
    猜你喜欢
    • 2012-08-31
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2011-10-12
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多