Recupero delle e-mail dal server POP3
Salva le e‑mail su disco senza analizzare
Per scaricare i messaggi e‑mail da un server POP3 senza analizzarli, puoi usare il save_message metodo di Aspose.Email Pop3Client classe. Il seguente frammento di codice illustra come salvare un messaggio usando il suo numero di sequenza, in questo caso il numero 1. Il save_message il metodo preserva il formato EML originale senza analizzare:
Analizza i messaggi prima di salvare
Puoi recuperare un messaggio e‑mail specifico usando il fetch_message metodo del Pop3Client classe, specificando il numero di sequenza desiderato per l’oggetto client. Il seguente esempio di codice mostra come recuperare un messaggio specifico e poi salvarlo usando il suo oggetto come nome file chiamando il save metodo sull’oggetto 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)
Filtra le e‑mail dal server per criteri
Aspose.Email Pop3Client classe fornisce il list_messages() metodo che ottiene tutti i messaggi da una casella di posta. Per ottenere solo i messaggi che corrispondono a una condizione, usa il sovraccaricato list_messages(query) metodo che prende MailQuery come argomento. Il MailQuery classe fornisce varie proprietà per specificare le condizioni della query, ad esempio data, oggetto, mittente, destinatario e così via.
Per costruire l’espressione di ricerca, usa il MailQueryBuilder classe. Prima, definisci tutte le condizioni e i vincoli necessari, quindi popola l’oggetto MailQuery con la query creata dal MailQueryBuilder. Pop3Client utilizza questo oggetto MailQuery per recuperare le informazioni filtrate dal server.
Il seguente esempio di codice dimostra come filtrare e recuperare le e‑mail da un account Gmail basandosi su vari criteri, tra cui oggetto, data interna, mittente e destinatario. Mostra anche il filtraggio sensibile al maiuscolo/minuscolo e dimostra come costruire query complesse in modo efficiente.
- Stabilisci una connessione al server POP3 Gmail usando il Pop3Client classe con l’indirizzo del server, porta, nome utente e password specificati. Le opzioni di sicurezza sono impostate su AUTO per una connessione sicura.
- Crea un’istanza di MailQueryBuilder per costruire i criteri di ricerca per filtrare le e‑mail.
- Filtraggio per Oggetto:
- Le e‑mail contenenti "Newsletter" nella riga dell’oggetto sono specificate come condizione di filtro.
- Filtraggio per Data interna:
- È impostato un filtro per le e‑mail ricevute nella data corrente.
- È stato aggiunto un filtro aggiuntivo per recuperare le e‑mail ricevute nell’ultima settimana.
- Filtraggio per Mittente:
- Sono applicati filtri per cercare e‑mail da un indirizzo specifico (saqib.razzaq@127.0.0.1) e per includere e‑mail da un dominio particolare (SpecificHost.com).
- Filtraggio per Destinatario:
- È specificato un filtro per trovare le e‑mail inviate a un destinatario specifico.
- Combina le query usando l’operatore OR per cercare le e‑mail che corrispondono a un determinato oggetto o sono inviate da un indirizzo specifico.
- Filtraggio sensibile al maiuscolo/minuscolo:
- È specificato un filtro sensibile al maiuscolo/minuscolo per l’oggetto contenente "Newsletter" (indicato dal parametro True).
- Elenco dei messaggi:
- Il metodo list_messages() viene chiamato con la query costruita per recuperare i messaggi filtrati dalla casella.
- Infine, stampa il conteggio dei messaggi filtrati.
Filtra email per data
Per recuperare i messaggi per data di consegna, usa il internal_date proprietà come mostrato nell’esempio di codice qui sotto:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
Filtra email per intervallo di date
Per recuperare i messaggi entro un intervallo di date, usa lo stesso internal_date proprietà che specifica l’intervallo di date come mostrato nell’esempio di codice qui sotto:
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))
Filtra email per mittente
Per recuperare i messaggi da un mittente specifico, usa il from_address proprietà come mostrato nell’esempio di codice qui sotto:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
Filtra email per dominio
Per recuperare i messaggi da un dominio specifico, usa il from_address proprietà come mostrato nell’esempio di codice qui sotto:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
Filtra email per destinatario
Per recuperare i messaggi a un destinatario specifico, usa il to proprietà come mostrato nell’esempio di codice qui sotto:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
Crea query di ricerca complesse
A volte è necessario soddisfare più di una query. Aspose.Email rende possibile combinare le query in diverse istruzioni. Crea un MailQueryBuilder oggetto e utilizzare le sue proprietà per costruire query specifiche.
Combina le query con AND
Il seguente frammento di codice mostra come combinare le query con l’operatore 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")
Combina le query con OR
Il seguente frammento di codice mostra come combinare le query con l’operatore OR:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
Applica filtri sensibili al maiuscolo/minuscolo
L’API fornisce anche la capacità di filtrare le e‑mail dalla casella in base a criteri sensibili al maiuscolo/minuscolo. I seguenti metodi del StringComparisonField classe fornisce la capacità di cercare e‑mail specificando flag sensibili al maiuscolo/minuscolo:
Method Aspose.Email.StringComparisonField.contains(value, ignore_case) Method Aspose.Email.StringComparisonField.equals(value, ignore_case) Method Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Method Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
Il seguente frammento di codice mostra come implementare questa funzionalità nel tuo progetto:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)