0

Я пытаюсь удалить некоторые повреждения TNEF для элементов в нашей структуре PF. У меня возникла проблема с TNEF в прикрепленном элементе.Обновление EWS API ItemAttachment

Я могу найти элемент, загрузить его, удалить свойство, но я не могу сохранить прикрепленный элемент.

я получаю исключение:

Calling "Обновления" с "1" аргументом (ы): "Эта операция не поддерживается на пристрастиях."

$MSGID = $_ 
        $psPropset = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.ItemSchema]::Attachments) 
        $msMessage = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($exchService,$MSGID,$psPropset) 
        $msMessage.load() 

        "This message has attachments :" + $msMessage.hasattachments 
        " "|out-default 

        foreach($attach in $msMessage.Attachments){ 
           "Loading attachments :" 
           $attach.Load() 
             if ($attach.item.itemclass -eq "IPM.note") 
              {"Found Attached email Message : Checking for TNEF Corruption on attached Message " 
              $tnefProp1 = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x1204, [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::ShortArray) 
              $tnefProp2 = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x1205, [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::ShortArray) 
              $attach.Load($tnefProp1,$tnefProp2); 

                $propValue1 = $null 
                $propValue2 = $null 
                $foundProperty1 = $attach.item.TryGetProperty($tnefProp1, [ref]$propValue1) 
                $foundProperty2 = $attach.item.TryGetProperty($tnefProp2, [ref]$propValue2) 

                if ($foundProperty1 -or $foundProperty2) 
                { 
                 "TNEF props found on item: " + $attach.item.Subject.ToString() 

                 if ($Fix) 
                 { 
                  " Removing TNEF properties..." 

                  if ($foundProperty1) 
                  { 
                   $attach.item.RemoveExtendedProperty($tnefProp1) | Out-Null 
                  } 

                  if ($foundProperty2) 
                  { 
                   $attach.item.RemoveExtendedProperty($tnefProp2) | Out-Null 
                  } 


                  $attach.item.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite) 




                  " Finished removing TNEF properties from this item." 
                 } 

                } 

              } 
              else {"Attachment was not an email"} 


           } 




      $msMessage.update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite) 




     } 

     } 
+0

Просьба отложить (4 пробела) каждую строку вашего кодового блока. Это должно улучшить форматирование, особенно для последних двух строк с '}' фигурными скобками. – jpaugh

+0

Выполнено, спасибо. Я ценю совет –

ответ

0

Вы не можете редактировать вложение в месте. Вам нужно будет загрузить вложение, удалить его из элемента, отредактировать загруженную копию, а затем добавить ее в качестве нового приложения.

+0

Вот что я подозревал. У меня возникли проблемы с загрузкой/сохранением вложения. Я могу получить MIME-контент, но мне нужен фактический MSG. У вас есть примеры того, как это сделать? –

Смежные вопросы