Почему я не могу использовать модуль ведения журнала с SMTPHandler для отправки электронных писем?

#python #email #logging

#python #Адрес электронной почты #ведение журнала

Вопрос:

Я очень стараюсь, чтобы модуль ведения журнала мог отправлять электронные письма, но я продолжаю получать ошибки, и ничего не работает. Мой код и ошибка приведены ниже. Как мне исправить это для отправки электронных писем?

 >>> import logging
>>> logger = logging.getLogger("name")
>>> logger.setLevel(logging.DEBUG)
>>> import logging.handlers
>>> mail_handler = logging.handlers.SMTPHandler("smtp.gmail.com", "lenox.ben@gmail.com", "lenox.ben@gmail.com", "Testing", credentials=("lenox.ben@gmail.com", "Bl12224381"))
>>> mail_handler.setLevel(logging.DEBUG)
>>> mail_handler.setFormatter(logging.Formatter("%(asctime)s|%(levelname)s|%(message)s"))
>>> logger.addHandler(mail_handler)
>>> logger.info("Test email")

--- Logging error ---
Traceback (most recent call last):
  File "C:UsersbenleAppDataLocalProgramsPythonPython37liblogginghandlers.py", line 1007, in emit
    smtp = smtplib.SMTP(self.mailhost, port, timeout=self.timeout)
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libsmtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libsmtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libsmtplib.py", line 307, in _get_socket
    self.source_address)
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libsocket.py", line 727, in create_connection
    raise err
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libsocket.py", line 716, in create_connection
    sock.connect(sa)
socket.timeout: timed out
Call stack:
  File "<string>", line 1, in <module>
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libidlelibrun.py", line 144, in main
    ret = method(*args, **kwargs)
  File "C:UsersbenleAppDataLocalProgramsPythonPython37libidlelibrun.py", line 474, in runcode
    exec(code, self.locals)
  File "<pyshell#10>", line 1, in <module>
Message: 'Test email'
Arguments: ()
 

Комментарии:

1. Вы адаптировали свои настройки Gmail для приема «небезопасных приложений»? Не указывайте мне точное имя, но вам нужно изменить эти настройки в Gmail, чтобы он принимал автоматические системы, подобные этим, для доступа к вашей учетной записи.

2. Я просто попытался изменить параметр «Разрешить менее безопасные приложения», но это не позволило ему работать.

3. Это тот самый. Жаль, что это не сработало. Тайм-аут указывает на проблему с подключением? Это единственные сведения, которые я мог бы предоставить для решения этой проблемы. Удачи!