EWS API 更新 ItemAttachment
EWS API updating an ItemAttachment
我正在尝试删除我们 PF 结构中项目的一些 TNEF 损坏。我 运行 遇到了关于附加项目的 TNEF 问题。
我可以找到该项目,加载它,删除 属性,但我无法保存附加的项目。
我遇到异常:
Calling "Update" with "1" argument(s): "This operation isn't supported
on attachments."
$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)
}
}
您不能就地编辑附件。您需要下载附件,将其从项目中删除,编辑下载的副本,然后将其添加为新附件。
我正在尝试删除我们 PF 结构中项目的一些 TNEF 损坏。我 运行 遇到了关于附加项目的 TNEF 问题。
我可以找到该项目,加载它,删除 属性,但我无法保存附加的项目。
我遇到异常:
Calling "Update" with "1" argument(s): "This operation isn't supported on attachments."
$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)
}
}
您不能就地编辑附件。您需要下载附件,将其从项目中删除,编辑下载的副本,然后将其添加为新附件。