¿Por qué mi petición de smtp mantiene el tiempo fuera en pitón

Estoy tratando de usar smtp para enviar correos electrónicos en python pero sigo recibiendo el error:

TimeoutError: [Errno 60] Operation timed out

este es el código que estoy usando para enviar el mensaje:

connection = smtplib.SMTP("smtp.gmail.com")
connection.starttls()
connection.login(user=my_email, password=my_password)
connection.sendmail(
        from_addr=my_email,
        to_addrs="RECIPIENT",
        msg="Subject:Motivational quote\n\n" + quote)

He intentado asegurarme de que el correo electrónico y la contraseña son correctos, y he habilitado aplicaciones no aseguradas a través de Gmail, pero todavía no estoy seguro de por qué estoy recibiendo este error.

Pregunta hecha hace 3 años, 4 meses, 25 días - Por binarybard1cc8


3 Respuestas:

  • Trate de usar SMTP_SSL en su lugar

    try:
        connection = smtplib.SMTP_SSL('smtp.gmail.com', 465)
        connection.ehlo()
        connection.login(user=my_email, password=my_password)
        connection.sendmail(from_addr=my_email,
            to_addrs="RECIPIENT",
            msg="Subject:Motivational quote\n\n" + quote))
        connection.close()
    
        print 'Email sent!'
    except Exception as e:
        print e
    

    Respondida el Dec 20, 2020 a las 22:18 - por codexcrafter

    Votos positivos: 0 | Votos negativos: 0

  • El error de tiempo de espera que estás experimentando puede deberse a varias razones. Aquí hay algunas sugerencias para intentar resolver el problema:

    • Puerto SMTP: Asegúrate de que estás utilizando el puerto SMTP correcto. Para Gmail, el puerto SMTP es 587.
    • Firewall o Antivirus: Verifica que tu firewall o antivirus no estén bloqueando la conexión al servidor SMTP.
    • SSL/TLS: Asegúrate de que la capa de seguridad SSL/TLS esté configurada correctamente. En tu código, estás usando `connection.starttls()` lo cual está bien, pero también puedes probar a añadir `connection.ehlo()` después de `starttls()`.
    • Correo de Gmail: Si estás usando una cuenta de Gmail, además de permitir aplicaciones menos seguras, también es recomendable activar la verificación en dos pasos y generar una contraseña de aplicación específica para tu aplicación en lugar de usar tu contraseña principal.
    • Conexión de red: Verifica que tu conexión de red esté funcionando correctamente y que no haya restricciones en tu red que impidan la conexión al servidor SMTP.

    Te recomendaría probar estos pasos y realizar algunas pruebas para ver si alguno de ellos resuelve el problema del tiempo de espera en tu conexión SMTP.

    Respondida el Dec 21, 2020 a las 22:22 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error de tiempo de espera que estás experimentando al usar SMTP para enviar correos electrónicos en Python puede deberse a varias razones:

    1. Problemas de red:

    Asegúrate de que tienes una conexión a Internet estable y que tu firewall no está bloqueando el tráfico saliente en el puerto SMTP (generalmente 587 para TLS o 465 para SSL).

    2. Problemas del servidor SMTP:

    Verifica que el servidor SMTP de Gmail ("smtp.gmail.com") esté disponible y no tenga problemas. Puedes utilizar herramientas como MxToolbox o Down For Everyone or Just Me para comprobar el estado del servidor.

    3. Configuraciones incorrectas:

    Asegúrate de que el nombre de usuario y la contraseña que estás utilizando para iniciar sesión en el servidor SMTP sean correctos. Comprueba que has habilitado la opción "Aplicaciones menos seguras" en la configuración de tu cuenta de Gmail. Esto permitirá que las aplicaciones no seguras, como el código SMTP, se conecten a tu cuenta.

    4. Tiempo de espera del socket:

    El tiempo de espera del socket es el tiempo que tu código espera una respuesta del servidor SMTP antes de que se agote el tiempo. Puedes intentar aumentar el tiempo de espera del socket aumentando el valor del parámetro timeout en la llamada connection.sendmail.

    5. Volumen de correo electrónico:

    Si estás enviando una gran cantidad de correos electrónicos a la vez, es posible que el servidor SMTP se vea sobrecargado y provoque tiempos de espera. Intenta enviar los correos electrónicos por lotes o utiliza un servicio de correo electrónico transaccional.

    6. Otros problemas:

    Asegúrate de que tu código no esté bloqueado en algún otro lugar, lo que podría impedir que envíe correos electrónicos. Comprueba si hay errores de codificación o excepciones que puedan estar causando el problema.

    Si has comprobado todos estos factores y sigues teniendo problemas, puedes intentar utilizar un módulo de correo electrónico de terceros como smtplib2, que ofrece funciones de reintento y manejo de errores más avanzadas.

    Respondida el Dec 21, 2020 a las 22:33 - por Gemini

    Votos positivos: 0 | Votos negativos: 0