2015-09-04 26 views
0

這是我用於將Outlook郵件保存到郵件文件的代碼。無法打開以編程方式保存的Outlook郵件文件

<?php 
    define("FILE_PUT_CONTENTS_ATOMIC_MODE", 0777); 
    /*function __autoload($class_name) { 
     $base_path = 'php-ews-master'; 
     $include_file = $base_path . '/' . str_replace('_', '/', $class_name) . '.php'; 
     return (file_exists($include_file) ? require_once $include_file : false); 
    } 
    */ 
    function __autoload($class_name) 
    { 
     // Start from the base path and determine the location from the class name, 
     $base_path = '.'; 
     $include_file = $base_path . '/' . str_replace('_', '/', $class_name) . '.php'; 

     return (file_exists($include_file) ? require_once $include_file : false); 
    } 


    /* 
    ** Adjust these variables before running the script! 
    */ 
    $server = 'xxx'; 
    $username = 'xx'; 
    $password = 'xx' ; 
    $message_id = 'xx'; 


    $save_dir = __DIR__; 


    $ews = new ExchangeWebServices($server, $username, $password,ExchangeWebServices::VERSION_2007_SP1); 
    //print_r($ews); 

    $request = new EWSType_GetItemType(); 

    $request->ItemShape = new EWSType_ItemResponseShapeType(); 
    $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; 
    $request->ItemShape->IncludeMimeContent = true; 
    //$request->ItemShape->FilterHtmlContent = true; 

    $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')) { 

     file_put_contents($save_dir."/test.msg", base64_decode($response->ResponseMessages->GetItemResponseMessage->Items->Message->MimeContent->_)); 

    } 

    ?> 

當我打開文件時,它會在創建的消息文件中注意到文件權限錯誤時收到錯誤消息。

請幫我解決這個問題。

回答

1

MSG文件是一個二進制文件(如果是MSG格式,則爲IStorage)。這不是你從EWS得到的。

您是否試圖在記事本中打開該文件?

+0

@damitry 有沒有辦法將MSG文件創建爲EWS的二進制文件? – sanji

+1

我不相信。 –

+0

手動保存的文件保存爲應用程序/ CDFV2損壞類型。有什麼辦法可以保存該類型的.msg文件嗎? – sanji

相關問題