Recuperando Emails de um Servidor POP3
Salvar emails no disco sem análise
Para baixar mensagens de email de um servidor POP3 sem análise, você pode usar o save_message método da Aspose.Email Pop3Client classe. O trecho de código a seguir ilustra como salvar uma mensagem usando seu número de sequência, neste caso, número 1. O save_message método preserva o formato EML original sem análise:
Analisar mensagens antes de salvar
Você pode recuperar uma mensagem de email específica usando o fetch_message método do Pop3Client classe, especificando o número de sequência desejado para o objeto cliente. O exemplo de código a seguir mostra como buscar uma mensagem específica e então salvá‑la usando seu assunto como nome de arquivo, chamando o save método no objeto msg:
import aspose.email as ae
client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)
# Fetch the message by its sequence number and Save the message using its subject as the file name
msg = client.fetch_message(1)
msg.save("first-message_out.eml", ae.SaveOptions.default_eml)
Filtrar emails do servidor por critério
O Aspose.Email Pop3Client classe fornece o list_messages() método que obtém todas as mensagens de uma caixa de correio. Para obter apenas mensagens que correspondam a alguma condição, use o sobrecarregado list_messages(query) método que recebe MailQuery como argumento. O MailQuery classe fornece várias propriedades para especificar as condições da consulta, por exemplo, data, assunto, remetente, destinatário e assim por diante.
Para construir a expressão de pesquisa, use o MailQueryBuilder classe. Primeiro, defina todas as condições e restrições necessárias e, em seguida, preencha o objeto MailQuery com a consulta criada pelo MailQueryBuilder. O Pop3Client utiliza este objeto MailQuery para buscar informações filtradas do servidor.
O exemplo de código a seguir demonstra como filtrar e recuperar emails de uma conta Gmail com base em vários critérios, incluindo assunto, data interna, remetente e destinatário. Também mostra filtragem sensível a maiúsculas e minúsculas e demonstra como construir consultas complexas de forma eficiente.
- Estabeleça uma conexão ao servidor POP3 do Gmail usando o Pop3Client classe com o endereço do servidor especificado, porta, nome de usuário e senha. As opções de segurança são definidas como AUTO para conexão segura.
- Crie uma instância do MailQueryBuilder para construir os critérios de pesquisa para filtragem de emails.
- Filtrando por Assunto:
- Emails contendo "Newsletter" na linha de assunto são especificados como condição de filtro.
- Filtrando por Data interna:
- Um filtro é definido para emails recebidos na data atual.
- Um filtro adicional é adicionado para recuperar emails recebidos na última semana.
- Filtrando por Remetente:
- Filtros são aplicados para procurar emails de um endereço específico (saqib.razzaq@127.0.0.1) e incluir emails de um domínio específico (SpecificHost.com).
- Filtrando por Destinatário:
- Um filtro é especificado para encontrar emails enviados a um destinatário específico.
- Combinar consultas usando o operador OR para buscar emails que correspondam a um determinado assunto ou sejam enviados de um endereço específico.
- Filtragem sensível a maiúsculas e minúsculas:
- Um filtro sensível a maiúsculas e minúsculas para o assunto contendo "Newsletter" é especificado (indicado pelo parâmetro True).
- Listando mensagens:
- O método list_messages() é chamado com a consulta construída para recuperar as mensagens filtradas da caixa de correio.
- Finalmente, imprima a contagem das mensagens filtradas.
Filtrar Emails por Data
Para buscar mensagens por data de entrega, use o internal_date propriedade como mostrado no exemplo de código abaixo:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
Filtrar Emails por Intervalo de Datas
Para buscar mensagens dentro de um intervalo de datas, use o mesmo internal_date propriedade que especifica o intervalo de datas como mostrado no exemplo de código abaixo:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
# Emails that arrived in last 7 days
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
Filtrar Emails por Remetente
Para buscar mensagens de um remetente específico, use o from_address propriedade como mostrado no exemplo de código abaixo:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
Filtrar Emails por Domínio
Para buscar mensagens de um domínio específico, use o from_address propriedade como mostrado no exemplo de código abaixo:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
Filtrar Emails por Destinatário
Para buscar mensagens para um destinatário específico, use o to propriedade como mostrado no exemplo de código abaixo:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
Construa Consultas de Busca Complexas
Às vezes é necessário satisfazer mais de uma consulta. Aspose.Email permite combinar consultas em várias instruções. Crie um MailQueryBuilder objeto e usar suas propriedades para construir consultas específicas.
Combinar consultas com AND
O trecho de código a seguir mostra como combinar consultas com o operador AND:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
builder.from_address.contains("SpecificHost.com")
Combinar consultas com OR
O trecho de código a seguir mostra como combinar consultas com o operador OR:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
Aplicar 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 da StringComparisonField classe fornece a capacidade de pesquisar emails especificando flags sensíveis a maiúsculas e minúsculas:
Método Aspose.Email.StringComparisonField.contains(value, ignore_case) Método Aspose.Email.StringComparisonField.equals(value, ignore_case) Método Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Método Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
O trecho de código a seguir mostra como implementar esse recurso em seu projeto:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)