Connetti al server IMAP C#

In vari casi, si accede ai server di posta elettronica dall’interno delle applicazioni Python per leggere le e-mail o per implementare client di posta elettronica. Per recuperare le e-mail da un server e-mail, viene comunemente utilizzato il protocollo Internet Message Access Protocol (IMAP). In questo articolo, ti mostreremo come leggere le email da un server usando IMAP in Python. L’articolo tratterà esplicitamente come connettersi a un server di posta elettronica, accedere alla cartella desiderata e leggere le e-mail.

Libreria Python per leggere le email usando IMAP

Per leggere le e-mail dal server di posta elettronica tramite IMAP, utilizzeremo Aspose.Email for Python via .NET. È una potente libreria di posta elettronica che ti consente di inviare e-mail e accedere alle caselle di posta dai server di posta elettronica. È possibile installare la libreria da PyPI utilizzando il comando seguente.

pip install Aspose.Email-for-Python-via-NET

Per l’installazione manuale utilizzando un file .whl, è possibile seguire i passaggi seguenti.

  • Scarica il file .whl installabile dalla sezione download.
  • Dalla riga di comando, utilizzare il comando: pip install «FileName> >.whl per installare la libreria.

Connettiti al server di posta elettronica tramite IMAP in Python

Di seguito sono riportati i passaggi per connettersi a un server di posta elettronica utilizzando IMAP.

  1. Crea un’istanza della classe ImapClient e inizializzala con nome host, porta, nome utente e password.
  2. Utilizzare l’oggetto ImapClient per accedere alla cassetta postale.

L’esempio di codice seguente mostra come connettersi a un server di posta elettronica usando IMAP in Python.

from aspose.email import SecurityOptions, ImapClient

# create an instance of ImapClient and provide host, port, username and password
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")

# set security options
client.security_options = SecurityOptions.SSLIMPLICIT

# use ImapClient object to access mailbox

Accedi alle cartelle e-mail dalla casella di posta in Python

Una volta stabilita la connessione al server di posta elettronica, è possibile scegliere la cartella da cui si desidera leggere i messaggi di posta elettronica. Diamo prima un’occhiata a come ottenere l’elenco di tutte le cartelle nella casella di posta. Di seguito sono riportati i passaggi per ottenere informazioni su ciascuna cartella.

  1. Crea un’istanza della classe ImapClient e inizializzala con nome host, porta, nome utente e password.
  2. Usa il metodo ImapClient.listfolders() per ottenere la raccolta di cartelle in un oggetto.
  3. Scorri la raccolta e recupera i dettagli delle cartelle.

Nell’esempio di codice seguente viene illustrato come stampare i dettagli delle cartelle in una cassetta postale.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

    # get list of folders
    folderInfoColl = client.list_folders()

    # iterate through the collection to get folders' info one by one
    for folderInfo in folderInfoColl:
        print("Folder name is " + folderInfo.name)
        folderExtInfo = client.get_folder_info(folderInfo.name)
        print("New message count: " + str(folderExtInfo.new_message_count))
        print("Is it readonly? " + str(folderExtInfo.read_only))
        print("Total number of messages " + str(folderExtInfo.total_message_count))
    

Procediamo ora ad accedere a una particolare cartella nella casella di posta tramite IMAP.

  1. Crea un’istanza della classe ImapClient e inizializzala con nome host, porta, nome utente e password.
  2. Utilizzare il metodo ImapClient.selectfolder(string) per selezionare la cartella.

L’esempio di codice seguente mostra come selezionare una cartella di posta elettronica dalla cassetta postale.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

    # select the folder from mailbox
    client.select_folder("Inbox")

Leggi le email da una cartella in Python

Di seguito sono riportati i passaggi per leggere i messaggi di posta elettronica da una particolare cartella nella casella di posta utilizzando Python.

  1. Crea un’istanza della classe ImapClient e inizializzala con nome host, porta, nome utente e password.
  2. Utilizzare il metodo ImapClient.selectfolder(string) per selezionare la cartella.
  3. Ottieni l’elenco dei messaggi nella cartella usando il metodo client.listmessages().
  4. Scorri la raccolta di messaggi.
  5. Ottieni i dettagli di ogni messaggio e-mail e salvalo sul disco, se necessario.

L’esempio di codice seguente mostra come leggere i messaggi di posta elettronica da un server di posta elettronica in Python.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

        # select folder
        client.select_folder("Inbox")

        # read each message in collection
        for msg in client.list_messages():
            print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
            
            # save message on disk
            client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

Ottieni una licenza API gratuita

Puoi utilizzare Aspose.Email per Python tramite .NET gratuitamente ottenendo una licenza temporanea.

Conclusione

In questo articolo, hai imparato a leggere le email da un server di posta usando IMAP in Python. Gli esempi di codice hanno dimostrato come connettersi a un server di posta elettronica, ottenere l’elenco delle cartelle nella casella di posta, selezionare una cartella e leggere le e-mail. Inoltre, puoi visitare la documentazione per saperne di più su Aspose.Email per Python tramite .NET. Inoltre, puoi scaricare il pacchetto completo di esempi di codice sorgente da GitHub. In caso di domande o domande, non esitare a farcelo sapere tramite il nostro forum.

Guarda anche