使用 C#(在 UiPath 中)使用不带附件的 Exchange 网络服务获取电子邮件消息
Get Email Message using Exchange webservices without attachment, using C# (in UiPath)
我在 UiPath 中使用 C# 中的自定义代码块使用交换 Web 服务从邮箱接收电子邮件(我根本不精通 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);
有没有办法加快检索带有大附件的电子邮件?
因为您将 ItemSchema.MimeContent 包含在您的属性集中,这将为您提供消息的整个 MimeStream,包括附件。如果您不需要 MimeStream,请不要请求它。例如,您应该能够从其他属性中获取消息的所有其他属性,例如 body、主题、headers 等,因此仅当您想要保存消息时才需要它。
我在 UiPath 中使用 C# 中的自定义代码块使用交换 Web 服务从邮箱接收电子邮件(我根本不精通 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);
有没有办法加快检索带有大附件的电子邮件?
因为您将 ItemSchema.MimeContent 包含在您的属性集中,这将为您提供消息的整个 MimeStream,包括附件。如果您不需要 MimeStream,请不要请求它。例如,您应该能够从其他属性中获取消息的所有其他属性,例如 body、主题、headers 等,因此仅当您想要保存消息时才需要它。