es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo utilizar IMAP a través de un proxy?

Actualmente estoy utilizando un servidor RHEL8 que no tiene conexión a internet. En ese servidor he implementado un cuaderno Jupyter y he utilizado el siguiente código para conectarme con IMAP.

import imaplib

imap = imaplib.IMAP4_SSL('imap-mail.outlook.com',995)
# autenticar
imap.login(nombre_de_usuario, contraseña)
imap.select()

Tengo el siguiente error.

OSError: [Errno 97] Address family not supported by protocol

¿Alguien puede explicar si este error se produce debido a la falta de disponibilidad de internet u otra razón? ¿Cómo debo crear un proxy y pasar esto a través de él?

Aquí he implementado un proxy y comprobado la conectividad de la siguiente manera. Ahora necesito conectarme con IMAP. Pero no pude identificar el método correcto para hacerlo.

http_proxy  = "http://10.48.250.90:3128"
https_proxy = "https://10.48.250.90:3128"
ftp_proxy   = "ftp://10.48.250.90:3128"

proxyDict = { 
              "http"  : http_proxy, 
              "https" : https_proxy, 
              "ftp"   : ftp_proxy
            }

# Estableciendo la URL y comprobando la conexión imprimiendo el estado
url = "https://imap-mail.outlook.com"
#url = 'https://www.google.lk'
page = requests.get(url, proxies=proxyDict)
print(page.status_code)
print(page.url)
#print(page.text)
Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “OSError: [Errno 97] Address family not supported by protocol” probablemente indica un problema con la configuración de red en lugar de un problema con la disponibilidad de Internet. Este error ocurre típicamente cuando se intenta conectar a una dirección IP utilizando un protocolo que no es soportado por la familia de direcciones. Esto puede suceder, por ejemplo, si intenta conectarse a una dirección IPv6 utilizando una configuración de red sólo IPv4.

    Para crear un proxy y pasar la conexión a través de él, puede utilizar la librería requests en Python. El código que incluyó muestra un ejemplo de configuración del proxy y verificación del estado de conexión. Para conectarse a IMAP utilizando el proxy, puede modificar el código para incluir la configuración del proxy en la conexión IMAP:

    import imaplib
    import requests
    
    http_proxy  = "http://10.48.250.90:3128"
    https_proxy = "https://10.48.250.90:3128"
    ftp_proxy   = "ftp://10.48.250.90:3128"
    
    proxyDict = {         
                  "http": http_proxy, 
                  "https": https_proxy, 
                  "ftp": ftp_proxy
                }
    
    # autenticar y conectarse a IMAP utilizando el proxy
    imap = imaplib.IMAP4_SSL('imap-mail.outlook.com', 995, proxy_type='http', proxy=proxyDict)
    username = 'su_nombre_de_usuario'
    password = 'su_contraseña'
    imap.login(username, password)
    imap.select()
    

    En este ejemplo, el argumento proxy_type se establece en “http” para indicar que se está utilizando un proxy HTTP, y el argumento proxy se establece en proxyDict para especificar la configuración del proxy. Debe reemplazar su_nombre_de_usuario y su_contraseña por sus credenciales de inicio de sesión reales para el servidor IMAP. Con estas modificaciones, el código debe conectarse correctamente a IMAP utilizando el proxy especificado.

Comments are closed.