Warm tip: This article is reproduced from serverfault.com, please click

exchangewebservices-使用无附件的 Exchange 网络服务获取电子邮件消息,使用 C#(在 UiPath 中)

(exchangewebservices - Get Email Message using Exchange webservices without attachment, using C# (in UiPath))

发布于 2021-02-02 17:03:20

我正在使用 UiPath 中的 C# 中的自定义代码块(我根本不精通 C#,因此请原谅代码质量!)使用交换网络服务从邮箱接收电子邮件。我将交换服务和文件夹 ID 作为参数传递给代码块。我注意到当电子邮件中有一个大附件时,它花费的时间要长得多。我对附件不感兴趣,我只想能够访问有关电子邮件的一些信息。这是我最初的代码:

//Search for oldest email 
ItemView objView = new ItemView(1);
objView.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
FindItemsResults<Item> lstItems = objServer.FindItems(in_FolderID, objView);

//Bind to email from result
if(lstItems.Count() == 0) 
{
    Console.WriteLine("Inbox appears to be empty");
    out_ExchangeMessage = null;
    out_InternetMessageID = null;
}
else
    {
        Item objItem = lstItems.ElementAt(0);
        Console.WriteLine("Retrieving email: " + objItem.Subject);
        PropertySet objPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead,ItemSchema.Attachments,ItemSchema.TextBody);
        out_ExchangeMessage = EmailMessage.Bind(objServer,objItem.Id, objPropertySet);
        out_InternetMessageID = out_ExchangeMessage.InternetMessageId;
        Console.WriteLine("Message Retrieved: " + out_ExchangeMessage.InternetMessageId);
    }

我尝试删除 ItemSchema.Attachments 所以这行内容如下。但是电子邮件仍然需要更长的时间来下载

PropertySet objPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead,ItemSchema.TextBody);

有没有办法加快检索带有大附件的电子邮件?

Questioner
UZEE100
Viewed
0
Glen Scales 2021-02-03 06:44:41

因为你将 ItemSchema.MimeContent 包含在你的属性集中,它将为你提供包括附件在内的消息的整个 MimeStream。如果你不需要 MimeStream,请不要请求它。例如,你应该能够从其他属性中获取消息的所有其他属性,例如正文、主题、标题等,因此只有在你想保存消息时才需要它。