Как получить сообщение в мой gmail, если сценарий Python вызывает исключение - PullRequest
0 голосов
/ 28 января 2020

Я пытался с logging.handlers, но не смог, я взял код из Интернета, и я попробовал его.

import logging
import logging.handlers

smtp_handler = logging.handlers.SMTPHandler(mailhost=("smtp.gmail.com", 587),
                                            fromaddr="name@gmail.com", 
                                            toaddrs="name@gmail.com",
                                            subject=u"AppName error!")


logger = logging.getLogger()
logger.addHandler(smtp_handler)

try:
    data= Data
except Exception as e:
    logger.exception('Unhandled Exception')

В моем коде я использовал переменные данные и назначил его с данными, которые не являются даже определенное, следовательно, это исключение. Я хочу получить сообщение об ошибке исключения в мой gmail. Как я могу этого достичь. Если любой ответ будет оценен.

1 Ответ

1 голос
/ 28 января 2020

Вместо того, чтобы выяснить, как работает smtplib, мой подход состоял в том, чтобы установить почтовый сервер на компьютере и вызвать его, используя os.popen:

def sendmail_email(msg):
    sendmail_location = "/usr/sbin/sendmail"
    sendmail = os.popen("{} -t".format(sendmail_location), 'w')
    sendmail.write(msg)
    status = sendmail.close()
    print("Sent the following email with sendmail, status {}:".format(status))
    print(msg)

...
except Exception as e:
    import traceback
    message = """To:your_address@domain.com
From:your_program@domain.com
Subject:An exception has occurred.

Hello Father,

An exception has occurred:

{}

Here is the stack trace for the exception:

{}

Thank you,
-The Machine""".format(e.message, traceback.format_exc())
    sendmail_email(message)

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

...