Почему я получаю эту ошибку: «Тайм-аут: [Errno 110] Время ожидания соединения истекло», используя код python в Pycharm?

#python

Вопрос:

 import smtplib

my_email = "*******@gmail.com"
password = "***********"

with smtplib.SMTP("smtp.gmail.com") as connection:
    connection.starttls()
    connection.login(user=my_email, password=password)
    connection.sendmail(from_addr=my_email, to_addrs="*******@yahoo.com",
                        msg="Subject:Hellonn This is the body of my email.")
 

В gmail была включена функция «менее безопасные приложения». И наоборот, в Yahoo использовалась функция «Сгенерировать пароль приложения», которая все равно получила одинаковый ответ для обоих экземпляров.

Ответ №1:

Эта ошибка может быть вызвана многими причинами — обычно это означает, что что-то пошло не так при настройке подключения smtplib, и ваша электронная почта не настроена.

Чтобы получить более подробное и полезное сообщение об ошибке, необходимо включить отладку.

Для этого добавьте, добавьте эту строку кода:

connection.set_debuglevel(1)

Это выведет на консоль гораздо больше описательных сообщений отладчика.

Ответ №2:

попробуйте установить порт, например , 465 для gmail, smptlib.SMTP("smtp.gmail.com", 465 ) если ничего из этого не сработает, попробуйте изменить безопасность передачи с starttls() на SMTP_SSL , чтобы ваш код выглядел так:

 import smtplib, ssl #import ssl module

port = 465  # For SSL

# Create a secure SSL context
context = ssl.create_default_context()

with smtplib.SMTP_SSL("smtp.gmail.com", port, context=context) as server:
    server.login(my_email, password)
    server.sendmail(from_addr=my_email, to_addrs=reciver_email, msg=message)