smtplib.send_message завершается с ошибкой при нехватке места на диске - PullRequest
0 голосов
/ 18 июня 2020

У меня большой объем данных и маленький диск. Результат сценария отправляется по электронной почте списку получателей. Это должно включать любые ошибки.

try:
    ...
# Most likely out of space
except OSError as e:
    notify(args.e, Action.UNRECOVERABLE)
def notify(recipients: str, action: Action, body: str = None) -> None:
    """
    Sends an email with the result of the script.

    :param recipients: Comma-delimited list of email address
    :param action: Result of the script
    :param body: Content of the email
    """
    if body is None:
        body = action.value
    msg = email.message.EmailMessage()
    msg.set_content(body)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = recipients
    s = smtplib.SMTP('localhost')
    s.send_message(msg)
    s.quit()

Однако, когда заканчивается пространство, мы получаем эту ошибку:

Traceback (most recent call last):
    ....
OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File <filename>, line 257, in <module>
    main()
  File <filename>, line 254, in main
    notify(args.e, Action.UNRECOVERABLE)
  File <filename>, line 30, in notify
    s.send_message(msg)
  File "/usr/lib64/python3.6/smtplib.py", line 967, in send_message
    rcpt_options)
  File "/usr/lib64/python3.6/smtplib.py", line 882, in sendmail
    (code, resp) = self.data(msg)
  File "/usr/lib64/python3.6/smtplib.py", line 569, in data
    (code, msg) = self.getreply()
  File "/usr/lib64/python3.6/smtplib.py", line 394, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

Простым решением может быть удаление файлов, которые мы только что создан, но это очень не оптимально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...