Recupera e Elenca Email dal Server IMAP
Recupero e Elenco dei Messaggi
Come Ottenere Informazioni di Identificazione per i Messaggi in una Casella
Durante il recupero e l’elaborazione dei messaggi email, puoi ottenere informazioni di identificazione dettagliate, come numeri di sequenza e ID unici, usando le seguenti funzionalità offerte dall’ultima versione di Aspose.Email per .NET:
Aspose.Email.ImapMessageInfo classe: Rappresenta le informazioni di identificazione su un messaggio in una casella IMAP.
ImapMessageInfo.SequenceNumber proprietà: Recupera il numero di sequenza del messaggio.
ImapMessageInfo.UniqueId proprietà: Recupera l’identificatore univoco del messaggio.
Aspose.Email.MailMessage.ItemId proprietà: Rappresenta informazioni aggiuntive di identificazione sul messaggio all’interno della casella.
Il seguente frammento di codice dimostra come ottenere informazioni di identificazione per i messaggi in una casella IMAP:
- Crea un’istanza di ImapClient classe fornendo i parametri necessari come host del server IMAP, porta, indirizzo email, password e opzioni di sicurezza.
- Usa il ListMessages metodo per recuperare una lista di messaggi dalla cartella "INBOX". Limita la lista ai primi cinque messaggi usando il metodo Take(5).
- Estrai i numeri di sequenza dei messaggi elencati usando il SequenceNumber proprietà di ciascun messaggio.
- Usa il FetchMessages metodo per recuperare i dettagli completi dei messaggi dal server, usando i numeri di sequenza ottenuti nel passaggio precedente.
- Scorri i messaggi recuperati e per ciascun messaggio, recupera e visualizza le seguenti informazioni:
- Il numero di sequenza del messaggio.
- La proprietà ItemId.SequenceNumber.
- L’oggetto del messaggio.
using (var client = new ImapClient(imapHost, port, emailAddress, password, securityOption))
{
// List the first 5 messages from the inbox
var msgs = client.ListMessages("INBOX").Take(5);
// Get sequence numbers of the messages
var seqIds = msgs.Select(t => t.SequenceNumber);
// Fetch messages based on sequence numbers
var msgsViaFetch = client.FetchMessages(seqIds);
for (var i = 0; i < 5; i++)
{
var thisMsg = msgsViaFetch[i];
Console.WriteLine($"Message ID: {seqIds.ElementAt(i)} SequenceNumber: {thisMsg.ItemId.SequenceNumber} Subject: {thisMsg.Subject}");
}
}
Elenca ID dei Messaggi MIME dal Server
ImapMessageInfo fornisce il MIME MessageId per l’identificazione del messaggio senza estrarre l’intero messaggio. Il seguente frammento di codice mostra come elencare il MIME messageId.
Elenca i messaggi dal server
Aspose.Email fornisce una variante sovraccarica a 2 membri di ListMessages() per recuperare un numero specifico di messaggi basato su una query. Il seguente frammento di codice mostra come elencare i Messaggi.
Elenca i messaggi ricorsivamente
Il protocollo IMAP supporta l’elenco dei messaggi in modo ricorsivo da una cartella di casella. Questo aiuta a elencare anche i messaggi dalle sottocartelle. Il seguente frammento di codice mostra come elencare i messaggi ricorsivamente.
Elenca messaggi con MultiConnection
ImapClient fornisce un UseMultiConnection proprietà che può essere usata per creare più connessioni per operazioni intensive. È inoltre possibile impostare il numero di connessioni da utilizzare durante la modalità multiconnessione usando ImapClient.ConnectionsQuantity. Il seguente frammento di codice dimostra l’uso della modalità multiconnessione per elencare i messaggi e confronta le sue prestazioni con la modalità a singola connessione.
Elenca messaggi con supporto alla paginazione
In scenari in cui il server di posta contiene un gran numero di messaggi nella casella di posta, è spesso desiderabile elencare o recuperare i messaggi con supporto di paginazione. Le API di Aspose.Email ImapClient ti consente di recuperare i messaggi dal server con supporto alla paginazione.
Elenca gli allegati dei messaggi
Per ottenere informazioni sugli allegati come nome, dimensione senza recuperare i dati dell’allegato, prova le seguenti API:
- Aspose.Email.Clients.Imap.ImapAttachmentInfo - Rappresenta le informazioni di un allegato.
- Aspose.Email.Clients.Imap.ImapAttachmentInfoCollection - Rappresenta una raccolta di ImapAttachmentInfo classe.
- Aspose.Email.Clients.Imap.ListAttachments(int sequenceNumber) - Ottiene informazioni per ciascun allegato in un messaggio.
Il campione di codice con i passaggi seguenti ti mostrerà come utilizzare le API:
- Chiama il ListMessages() Metodo sull’oggetto imapClient. Questo metodo restituirà una ImapMessageInfoCollection contenente le informazioni sui messaggi nella casella di posta.
- Itera attraverso ogni messaggio nella collection messageInfoCollection usando un ciclo foreach.
- Chiama il ListAttachments() Metodo sull’oggetto imapClient, passando la proprietà SequenceNumber dell’oggetto messaggio come parametro. Questo metodo restituirà una ImapAttachmentInfoCollection contenente le informazioni sugli allegati del messaggio.
- Itera attraverso ogni allegato nella collection attachmentInfoCollection usando un ciclo foreach.
- All’interno del ciclo interno, è possibile accedere alle informazioni di ogni allegato utilizzando le proprietà dell’oggetto attachmentInfo.
var messageInfoCollection = imapClient.ListMessages();
foreach (var message in messageInfoCollection)
{
var attachmentInfoCollection = imapClient.ListAttachments(message.SequenceNumber);
foreach (var attachmentInfo in attachmentInfoCollection)
{
Console.WriteLine("Attachment: {0} (size: {1})", attachmentInfo.Name, attachmentInfo.Size);
}
}
Recupero e salvataggio dei messaggi
Recupera messaggi dal server
Il ImapClient la classe può recuperare messaggi da un server IMAP e salvare i messaggi in formato EML su disco locale. I passaggi seguenti sono necessari per salvare i messaggi su disco:
- Crea un’istanza di ImapClient classe.
- Specifica un nome host, porta, nome utente e password nell’ImapClient constructor.
- Seleziona la cartella usando SelectFolder() metodo.
- Chiama il ListMessages metodo per ottenere il ImapMessageInfoCollection oggetto.
- Iterare attraverso il ImapMessageInfoCollection collezione, chiamare il SaveMessage() metodo e fornire il percorso di output e il nome file.
Il seguente frammento di codice mostra come recuperare i messaggi email da un server e salvarli.
Recupera i messaggi in ordine discendente
Aspose.Email fornisce ImapClient.ListMessagesByPage metodo che elenca i messaggi con supporto alla paginazione. Alcune sovraccarichi di ImapClient.ListMessagesByPage accetta PageSettings come parametro. PageSettings fornisce un AscendingSorting proprietà che, quando impostata su false, restituisce le email in ordine discendente.
Il seguente codice di esempio dimostra l’uso di AscendingSorting proprietà del PageSettings classe per modificare l’ordine delle email.
Salva messaggi in formato MSG
Per salvare le email in formato MSG, il ImapClient.FetchMessage() il metodo deve essere chiamato. Restituisce il messaggio in un’istanza di MailMessage classe. Il MailMessage.Save() il metodo può quindi essere chiamato per salvare il messaggio in MSG. Il seguente frammento di codice mostra come salvare i messaggi in formato MSG.
Raggruppa i messaggi recuperati
ImapClient fornisce un FetchMessages metodo che accetta un iterabile di Numeri di sequenza o ID unico e restituisce una lista di MailMessage. Il seguente frammento di codice dimostra l’uso del FetchMessages metodo per recuperare messaggi per Numero di sequenza e ID unico.
Recupera cartelle e leggi i messaggi ricorsivamente
In questo articolo, la maggior parte dei ImapClient Le funzionalità sono usate per creare un’applicazione che elenca tutte le cartelle e sottocartelle in modo ricorsivo da un server IMAP. Salva anche i messaggi in ogni cartella e sottocartella in formato MSG su disco locale. Sul disco, cartelle e messaggi sono creati e salvati nella stessa struttura gerarchica del server IMAP. Il frammento di codice seguente mostra come ottenere i messaggi e le informazioni delle sottocartelle in modo ricorsivo.
Gestione di informazioni speciali del messaggio
Recupera parametri extra come informazioni di riepilogo
Ottieni le informazioni dell’intestazione List-Unsubscribe
L’intestazione List-Unsubscribe contiene l’URL per annullare l’iscrizione alle liste email, ad es. pubblicità, newsletter, ecc. Per ottenere l’intestazione List-Unsubscribe, utilizzare il ListUnsubscribe proprietà del ImapMessageInfo classe. L’esempio seguente mostra l’uso di ListUnsubscribe proprietà per ottenere l’intestazione List-Unsubscribe.