Как настроить заголовок ответа при отправке сообщения с помощью управляемых API веб-служб Exchange в Powershell v3?Как установить сообщение Ответ на адрес с помощью EWS Managed API?
У меня есть объект Microsoft.Exchange.WebServices.Data.EmailMessage и вы можете установить адрес, добавить вложения и отправить почту успешно.
я был в состоянии добавить X-заголовок с помощью:
$xheader = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition([Microsoft.Exchange.WebServices.Data.DefaultExtendedPropertySet]::InternetHeaders,"x-my-header",[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String)
и добавить его в $ pspropset, но если я использую для ответа в качестве значения заголовка не вставлена.
Используя ценный и трудно найти информацию, размещенную на Glen Весы в this thread Я считаю, что две расширенные свойства, PidTagReplyRecipientEntries
и PidTagReplyRecipientNames
должны быть установлены на объекте EmailMessage.
Я могу установить как расширенные свойства без ошибок, но это не приводит к заголовку ответа-ответа в сообщении.
Соответствующий код ниже:
function SendResponse($orgMsg, $bodyTxt){
$message = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($service, $($orgMsg.Id), $psPropset)
$reply = $message.CreateReply($true)
$reply.BodyPrefix = $bodyTxt
$replyMsg = $reply.Save($drftFolderid.Id)
$replyMsg.From = "[email protected]"
$replyMsg.SetExtendedProperty($PidTagReplyRecipientEntries, $byteVal)
$replyMsg.SetExtendedProperty($PidTagReplyRecipientNames, "[email protected]")
$replyMsg.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)
$replyMsg.SendAndSaveCopy($sentFolderid.Id)
}
function convert-fromhex {
process
{
$_ -replace '^0x', '' -split "(?<=\G\w{2})(?=\w{2})" | %{ [Convert]::ToByte($_, 16) }
}
}
# below is hex of string "[email protected]"
[Byte[]]$byteVal = "6d795f646573697265645f7265706c79746f406578616d706c652e636f6d" | convert-fromhex
$PidTagReplyRecipientEntries = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x004F,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Binary)
$PidTagReplyRecipientNames = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x0050,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String)
$psPropset = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$psPropset.Add($PidTagReplyRecipientEntries)
$psPropset.Add($PidTagReplyRecipientNames)
Кто-нибудь знает, как это может быть достигнуто?
Любое понимание того, почему этот вопрос был проголосован, также оценивается. – runaboutfence
У меня такая же проблема, когда я хочу, чтобы ответ на адрес был списком рассылки Exchange, поэтому я не могу использовать олицетворение, какую-нибудь удачу? – Aaron