我可以从 Mailkit 中的 Enumerable<UniqueId> 获取 Enumerable<MimeMessage> 吗?
Could I fetch an Enumerable<MimeMessage> from an Enumerable<UniqueId> in Mailkit?
我正在尝试优化我用来执行搜索和检索结果的方法和方式。
实际上,我有一种方法(例如)按正文搜索邮件。它使用 TextSearchQuery 等,我检索了 UniqueIds 列表。我对使用 MimeMessages 很感兴趣,它基本上拥有我需要使用的一切。
public IEnumerable<MimeMessage> BuscarEnCuerpoEmail(string texto, bool noLeidos = false, bool flagged = false)
{
List<MimeMessage> resultado = new List<MimeMessage>();
try
{
imap.Inbox.Open(FolderAccess.ReadOnly);
if (!String.IsNullOrWhiteSpace(texto)
&& !noleidos && !flagged) //Busca en todos los correos
{
var parametrosBusqueda = new TextSearchQuery(SearchTerm.BodyContains, texto)
.And(SearchQuery.All);
var resultadoBusqueda = imap.Inbox.Search(parametrosBusqueda);
return ObtenerMensajes(resultadoBusqueda);
} . . . .
我有一个方法可以将 MimeMessage 添加到一个集合中,并且每次 GetMessage
...
public IEnumerable<MimeMessage> ObtenerMensajes(IEnumerable<UniqueId> ids)
{
List<MimeMessage> result = new List<MimeMessage>();
foreach (var id in ids)
{
var message = imap.Inbox.GetMessage(id);
result.Add(message);
//yield return message;
}
return result;
}
有什么方法可以在服务器中执行 GetMessage 并直接获取 MimeMessages 列表吗?喜欢 GetBatchMimeMessages(List<UniqueId>)
或其他有趣的东西。
谢谢。
MailKit 没有任何一次下载邮件集合的内置方法。一般来说,无论如何您都不想这样做,因为消息可以是任意大小的,并且它们的集合可以是巨大的。
IMAP 的设计使您实际上永远不需要一次完整地下载多封邮件,因为 IMAP 的目的是成为邮件的远程存储系统。
我正在尝试优化我用来执行搜索和检索结果的方法和方式。
实际上,我有一种方法(例如)按正文搜索邮件。它使用 TextSearchQuery 等,我检索了 UniqueIds 列表。我对使用 MimeMessages 很感兴趣,它基本上拥有我需要使用的一切。
public IEnumerable<MimeMessage> BuscarEnCuerpoEmail(string texto, bool noLeidos = false, bool flagged = false)
{
List<MimeMessage> resultado = new List<MimeMessage>();
try
{
imap.Inbox.Open(FolderAccess.ReadOnly);
if (!String.IsNullOrWhiteSpace(texto)
&& !noleidos && !flagged) //Busca en todos los correos
{
var parametrosBusqueda = new TextSearchQuery(SearchTerm.BodyContains, texto)
.And(SearchQuery.All);
var resultadoBusqueda = imap.Inbox.Search(parametrosBusqueda);
return ObtenerMensajes(resultadoBusqueda);
} . . . .
我有一个方法可以将 MimeMessage 添加到一个集合中,并且每次 GetMessage
...
public IEnumerable<MimeMessage> ObtenerMensajes(IEnumerable<UniqueId> ids)
{
List<MimeMessage> result = new List<MimeMessage>();
foreach (var id in ids)
{
var message = imap.Inbox.GetMessage(id);
result.Add(message);
//yield return message;
}
return result;
}
有什么方法可以在服务器中执行 GetMessage 并直接获取 MimeMessages 列表吗?喜欢 GetBatchMimeMessages(List<UniqueId>)
或其他有趣的东西。
谢谢。
MailKit 没有任何一次下载邮件集合的内置方法。一般来说,无论如何您都不想这样做,因为消息可以是任意大小的,并且它们的集合可以是巨大的。
IMAP 的设计使您实际上永远不需要一次完整地下载多封邮件,因为 IMAP 的目的是成为邮件的远程存储系统。