Conectarse al servidor IMAP C#

En varios casos, se accede a los servidores de correo electrónico desde las aplicaciones de Python para leer correos electrónicos o implementar clientes de correo electrónico. Para recuperar correos electrónicos de un servidor de correo electrónico, se usa comúnmente el protocolo Protocolo de acceso a mensajes de Internet (IMAP). En este artículo, le mostraremos cómo leer correos electrónicos de un servidor usando IMAP en Python. El artículo cubrirá explícitamente cómo conectarse a un servidor de correo electrónico, acceder a la carpeta deseada y leer correos electrónicos.

Biblioteca de Python para leer correos electrónicos usando IMAP

Para leer correos electrónicos del servidor de correo electrónico a través de IMAP, usaremos Aspose.Email for Python via .NET. Es una poderosa biblioteca de correo electrónico que le permite enviar correos electrónicos y acceder a los buzones de los servidores de correo electrónico. Puede instalar la biblioteca desde PyPI usando el siguiente comando.

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

Para la instalación manual usando un archivo .whl, puede seguir los pasos a continuación.

  • Descargue el archivo .whl instalable desde la sección descargas.
  • Desde la línea de comando, use el comando: pip install «FileName> >.whl para instalar la biblioteca.

Conéctese al servidor de correo electrónico a través de IMAP en Python

Los siguientes son los pasos para conectarse a un servidor de correo electrónico mediante IMAP.

  1. Cree una instancia de la clase ImapClient e inicialícela con nombre de host, puerto, nombre de usuario y contraseña.
  2. Utilice el objeto ImapClient para acceder al buzón.

El siguiente ejemplo de código muestra cómo conectarse a un servidor de correo electrónico mediante IMAP en 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

Acceda a las carpetas de correo electrónico desde Mailbox en Python

Una vez que haya establecido la conexión con el servidor de correo electrónico, puede elegir la carpeta desde la que desea leer los mensajes de correo electrónico. Primero veamos cómo obtener la lista de todas las carpetas en el buzón. Los siguientes son los pasos para obtener información sobre cada carpeta.

  1. Cree una instancia de la clase ImapClient e inicialícela con nombre de host, puerto, nombre de usuario y contraseña.
  2. Use el método ImapClient.listfolders() para obtener la colección de carpetas en un objeto.
  3. Recorra la colección y recupere los detalles de las carpetas.

El siguiente ejemplo de código muestra cómo imprimir detalles de las carpetas en un buzón.

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))
    

Procedamos ahora a acceder a una carpeta en particular en el buzón usando IMAP.

  1. Cree una instancia de la clase ImapClient e inicialícela con nombre de host, puerto, nombre de usuario y contraseña.
  2. Utilice el método ImapClient.selectfolder(string) para seleccionar la carpeta.

El siguiente ejemplo de código muestra cómo seleccionar una carpeta de correo electrónico del buzón.

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")

Leer correos electrónicos de una carpeta en Python

Los siguientes son los pasos para leer mensajes de correo electrónico de una carpeta particular en el buzón usando Python.

  1. Cree una instancia de la clase ImapClient e inicialícela con nombre de host, puerto, nombre de usuario y contraseña.
  2. Utilice el método ImapClient.selectfolder(string) para seleccionar la carpeta.
  3. Obtenga una lista de mensajes en la carpeta usando el método client.listmessages().
  4. Recorra la colección de mensajes.
  5. Obtenga detalles de cada mensaje de correo electrónico y guárdelo en el disco si es necesario.

El siguiente ejemplo de código muestra cómo leer correos electrónicos de un servidor de correo electrónico en 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")

Obtenga una licencia de API gratuita

Puede usar Aspose.Email for Python a través de .NET de forma gratuita obteniendo una licencia temporal.

Conclusión

En este artículo, ha aprendido a leer correos electrónicos de un servidor de correo electrónico usando IMAP en Python. Los ejemplos de código han demostrado cómo conectarse a un servidor de correo electrónico, obtener la lista de carpetas en el buzón, seleccionar una carpeta y leer correos electrónicos. Además, puede visitar documentación para explorar más sobre Aspose.Email for Python a través de .NET. Además, puede descargar el paquete completo de muestras de código fuente desde GitHub. En caso de que tenga alguna pregunta o consulta, no dude en hacérnosla saber a través de nuestro foro.

Ver también