Trabalhando com Mensagens do Servidor

Obtendo Informações da Caixa de Correio

Podemos obter informações sobre a caixa de correio, como o número de mensagens e o tamanho da caixa de correio, usando os métodos GetMailBoxSize e GetMailBoxInfo da classe Pop3Client.

É também possível obter o número de mensagens usando a propriedade MessageCount e o tamanho usando a propriedade OccupiedSize da classe Pop3MailBoxInfo. O seguinte código de exemplo mostra como obter informações sobre a caixa de correio. Ele mostra como:

  1. Criar um Pop3Client.
  2. Conectar-se a um servidor POP3.
  3. Obter o tamanho da caixa de correio.
  4. Obter informações da caixa de correio.
  5. Obter o número de mensagens na caixa de correio.
  6. Obter o tamanho ocupado.

Obtendo a Contagem de Emails na Caixa de Correio

O seguinte código de exemplo mostra como contar as mensagens de email em uma caixa de correio.

Aspose.Email permite que os desenvolvedores trabalhem com emails de muitas maneiras diferentes. Por exemplo, eles podem recuperar informações do cabeçalho antes de decidir se devem baixar um email. Ou eles podem recuperar emails de um servidor e salvá-los sem analisá-los (mais rápido) ou após analisá-los (mais devagar). Este artigo mostra como recuperar e converter emails.

Recuperando Informações dos Cabeçalhos de Email

Os cabeçalhos de email podem nos fornecer informações sobre uma mensagem de email que podemos usar para decidir se devemos ou não recuperar toda a mensagem de email. Normalmente, as informações do cabeçalho contêm remetente, assunto, data de recebimento, etc. (Os cabeçalhos de email são descritos em detalhes em Personalizando Cabeçalhos de Email. Esse tópico é especificamente sobre o envio de um email com SMTP, mas as informações do conteúdo do cabeçalho de email permanecem válidas para emails POP3). Os seguintes exemplos mostram como recuperar cabeçalhos de email de um servidor POP3 pelo número de sequência da mensagem.

Recuperando Mensagens de Email

A classe Pop3Client fornece a capacidade de recuperar mensagens de email do servidor POP3 e analisá-las em uma instância de MailMessage com a ajuda dos componentes MailMessage. A classe MailMessage contém várias propriedades e métodos para manipulação do conteúdo do email. Usando o método FetchMessage da classe Pop3Client, você pode obter uma instância de MailMessage diretamente do servidor POP3. O seguinte código de exemplo mostra como recuperar uma mensagem de email completa do servidor POP3.

Recuperando Informações Resumidas da Mensagem Usando ID Único

O Cliente POP3 da API pode recuperar informações resumidas da mensagem do servidor usando o ID único da mensagem. Isso fornece acesso rápido às informações resumidas da mensagem sem primeiro recuperar a mensagem completa do servidor. O seguinte código de exemplo mostra como recuperar informações resumidas da mensagem.

Listando Mensagens com MultiConnection

O Pop3Client fornece uma propriedade UseMultiConnection que pode ser usada para criar várias conexões para operações pesadas. Você também pode definir o número de conexões a serem usadas durante o modo de multiconexão usando Pop3Client.ConnectionsQuantity. O seguinte código de exemplo demonstra o uso do modo de multiconexão para listar mensagens e compara seu desempenho com o modo de conexão única.

Buscando Mensagens do Servidor e Salvando no Disco

Salvar Mensagem no Disco Sem Analisar

Se você deseja baixar mensagens de email do servidor POP3 sem analisá-las, use a função SaveMessage da classe Pop3Client. A função SaveMessage não analisa a mensagem de email, portanto, é mais rápida do que a função FetchMessage. O seguinte código de exemplo mostra como salvar uma mensagem pelo seu número de sequência. Nesse caso, o método SaveMessage salva a mensagem no formato EML original sem analisá-la.

Analisar Mensagem Antes de Salvar

O seguinte código de exemplo usa o método FetchMessage da classe Pop3Client para recuperar uma mensagem de um servidor POP3 pelo seu número de sequência e, em seguida, salvar a mensagem no disco usando o assunto como nome do arquivo.

Busca em Grupo de Mensagens

O Pop3Client fornece um método FetchMessages que aceita um iterável de Números de Sequência ou ID Únicos e retorna uma lista de MailMessage. O seguinte código de exemplo demonstra o uso do método FetchMessages para buscar mensagens por Números de Sequência e ID Único.

Filtrando Mensagens por Remetente, Destinatário ou Data

A classe Pop3Client, descrita em Conectando-se a um Servidor POP3, fornece o método ListMessages() que obtém todas as mensagens de uma caixa de correio. Para obter apenas mensagens que atendem a alguma condição, use o método sobrecarregado ListMessages() que aceita MailQuery como argumento. A classe MailQuery fornece várias propriedades para especificar as condições da consulta, por exemplo, data, assunto, remetente, destinatário e assim por diante. A classe MailQueryBuilder é usada para construir a expressão de busca. Primeiro, todas as condições e restrições são definidas e, em seguida, MailQuery é preenchido com a consulta desenvolvida por MailQueryBuilder. O objeto da classe MailQuery é usado pelo Pop3Client para extrair as informações filtradas do servidor. Este artigo mostra como filtrar mensagens de email de uma caixa de correio. O primeiro exemplo ilustra como filtrar mensagens com base na data e no assunto. Também mostramos como filtrar por outros critérios e como construir consultas mais complexas. Também mostra a aplicação do filtro de Data e Hora para recuperar emails específicos da caixa de correio. Além disso, também mostra como aplicar filtragem com diferenciação entre maiúsculas e minúsculas.

Filtrando Mensagens da Caixa de Correio

Para filtrar mensagens de uma caixa de correio:

  1. Conecte-se e faça login em um servidor POP3.
  2. Crie uma instância de MailQuery e defina as propriedades desejadas.
  3. Chame o método Pop3Client.ListMessages(MailQuery query) e passe o MailQuery como parâmetro para obter somente as mensagens filtradas.

O seguinte código de exemplo mostra como conectar-se a uma caixa de correio POP3 e obter mensagens que chegaram hoje e têm a palavra “newsletter” no assunto.

Obtendo Mensagens que Atendem a Critérios Específicos

Os exemplos de código acima mostram como você pode filtrar mensagens com base no assunto do email e na data. Podemos usar outras propriedades para definir outras condições suportadas também. Abaixo estão alguns exemplos de como definir as condições usando MailQuery.

Os trechos de código a seguir mostram como filtrar emails com base em outros critérios:

  • Encontrar emails entregues hoje.
  • Encontrar emails recebidos dentro de um intervalo.
  • Encontrar emails de um remetente específico.
  • Encontrar emails enviados de um domínio específico.
  • Encontrar emails enviados para um destinatário específico.

Data de Hoje

O seguinte código de exemplo mostra como encontrar emails entregues hoje.

Intervalo de Datas

O seguinte código de exemplo mostra como encontrar emails recebidos dentro de um intervalo.

Remetente Específico

O seguinte código de exemplo mostra como encontrar emails de um remetente específico.

Domínio Específico

O seguinte código de exemplo mostra como encontrar emails enviados de um domínio específico.

Destinatário Específico

O seguinte código de exemplo mostra como encontrar emails enviados para um destinatário específico.

Construindo Consultas Complexas

Se diferentes propriedades do MailQueryBuilder forem definidas em declarações separadas, então todas as condições devem ser atendidas. Por exemplo, se quisermos obter mensagens dentro de um intervalo de datas e de um host específico, precisamos escrever três declarações.

Combinando Consultas com AND

O seguinte código de exemplo mostra como combinar consultas com AND.

Combinando Consultas com OR

O MailQueryBuilder fornece o método Or() que aceita duas instâncias de MailQuery como parâmetros. Ele obtém as mensagens que atendem a qualquer uma das duas condições especificadas. O seguinte código de exemplo mostra como filtrar mensagens que possuem “teste” no assunto ou “noreply@host.com” como remetente. O seguinte código de exemplo mostra como combinar consultas com OR.

Aplicando Filtros Sensíveis a Maiúsculas e Minúsculas

A API também fornece a capacidade de filtrar emails da caixa de correio com base em um critério sensível a maiúsculas e minúsculas. Os seguintes métodos fornecem a capacidade de pesquisar emails especificando um sinalizador sensível a maiúsculas.

  • Método Aspose.Email.StringComparisonField.Contains(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.Equals(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.NotContains(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.NotEquals(string value, bool ignoreCase)