【发布时间】:2016-05-04 09:57:06
【问题描述】:
我正在使用 EWS 制作一个 powershell 程序:
- 从备份联系人文件夹中恢复一些数据(电话、网址、备注字段...)
- 在新联系人的默认联系人文件夹中设置这些值
一切正常,当然,除了添加到注释字段的附件,我仍然可以下载它们。
foreach ($attch in $Item.Attachments)
{
$downloadDirectory = ".\attachments"
$attch.Load()
$fiFile = new-object System.IO.FileStream(($downloadDirectory + “\” + $attch.Name.ToString()), [System.IO.FileMode]::Create)
$fiFile.Write($attch.Content, 0, $attch.Content.Length)
$fiFile.Close()
write-host "Downloaded Attachment : " + (($downloadDirectory + “\” + $attch.Name.ToString()))
}
或者上传它们。 (这里是静态的,用于测试目的)
$att = $item.Attachments.AddFileAttachment("C:\Scripts\myscript\attachments\PowerShell_transcript.20140506143510.txt")
$att.ContentId = 'test'
$att.IsInline=$false
理想情况下,我正在寻找匹配的 CID 引用并使用相同的引用上传回附件。
<div><font face="Calibri" size="2"><span style="font-size:11pt;">
<img src="cid:0DF540471453B832E300400FF03B0900CFEC1201@1">
<a href="cid:74D8EEA6180AD131B48DC59373FABBABD7E361BB@1">SomeDoc.docx</a>
</span></font></div>
当然,当从exchange中检索对象时,它没有contentid(我猜它应该是CID值)。
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
<Obj RefId="0">
<TN RefId="0">
<T>Microsoft.Exchange.WebServices.Data.FileAttachment</T>
<T>Microsoft.Exchange.WebServices.Data.Attachment</T>
<T>Microsoft.Exchange.WebServices.Data.ComplexProperty</T>
<T>System.Object</T>
</TN>
<ToString>Microsoft.Exchange.WebServices.Data.FileAttachment</ToString>
<Props>
<Nil N="FileName" />
<BA N="Content"></BA>
<B N="IsContactPhoto">false</B>
<S N="Id">AAMkADdmMDBkOTk4LTNlYzMtNDk1MS05ZTdhLWJmOGE.....</S>
<S N="Name">SomeDoc.docx</S>
<S N="ContentType">application/vnd.openxmlformats-officedocument.wordprocessingml.document</S>
<Nil N="ContentId" /> <=== WHERE IS MY VALUE :'(
<Nil N="ContentLocation" />
<I32 N="Size">1764632</I32>
<DT N="LastModifiedTime">2016-01-26T15:08:03+00:00</DT>
<B N="IsInline">false</B>
</Props>
</Obj>
</Objs>
有人知道检索该值的方法吗?
- 服务器/邮箱:Exchange 2013 SP1
谢谢!
【问题讨论】:
标签: powershell outlook exchange-server exchangewebservices