Exchange web服务-获取附件始终为空
本文关键字:web 服务 获取 Exchange | 更新日期: 2024-09-16 23:14:30
我有一个接受ExchangeWebServices.MessageType
参数的方法。我正在使用此变量从邮件中获取附件。当我得到附件的内容时,它总是空的。但文件名读取正确。以下是我正在使用的代码:
public void StripAttachments(MessageType fullMessage)
{
AttachmentType[] attachments = fullMessage.Attachments;
if (attachments != null && attachments.Length > 0)
{
foreach (AttachmentType attachment in attachments)
{
if (attachment is FileAttachmentType)
{
FileAttachmentType file = (FileAttachmentType)attachment;
byte[] contents = file.Content; //Always null
try
{
if(contents != null)
{
System.IO.File.WriteAllBytes(@"C:'TestLocation" + file.Name, contents);
}
}
catch (Exception ex)
{
}
}
}
}
}
有没有更好的方法从特定邮件中获取附件?
尝试使用EmailMessage而不是MessageType
您需要使用EmailMessage.Bind(ExchangeService, ItemId)
来填充附件列表并使用它们,否则将引发异常。
public void StripAttachments(ItemId id)
{
EmailMessage email = EmailMessage.Bind(service, id)
foreach (Attachment a in email.Attachments)
{
if (a is FileAttachment)
{
// do your thing
}
}
}
还可以查看使用EWS托管API获取附件,了解更多想法。