Отслеживание формата python

Цель состоит в том, чтобы распечатать трассировку неудачного скрипта Python. Я сослался на тонну статей о стеке, но не могу найти ни одной, подходящей для моих нужд. Цель состоит в том, чтобы отправить трассировку по электронной почте в случае сбоя. Я могу отправить все по электронной почте, это просто формирование обратной трассировки.

Чтобы получить обратную связь:

trace = traceback.format_exc()
send_email("Python Failure", trace, "bj@mydomain.com")

Электронная почта отправляется через HTML-сообщение с помощью smtpObj и MIMEMultipart:

def send_email(subject, message, receivers):
    sender = "mydomain.com"
    msg = MIMEMultipart("alternative")
    msg["Subject"] = subject
    msg["From"] = sender
    msg["To"] = ", ".join(receivers)

    html = """
    <html>
        <head></head>
        <body>
            <p><b>""" + subject + """</b></p>
            <p>""" + message + """</p>
        </body>
    </html>
    """
    part1 = MIMEText(message, "plain")
    part2 = MIMEText(html, "html")

    msg.attach(part1)
    msg.attach(part2)

    smtpObj = smtplib.SMTP("thats.not.cheddar")
    smtpObj.sendmail(sender, receivers, msg.as_string())
    smtpObj.quit()

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

Обернуть трассировку в тег <pre>?

snakecharmerb 11.08.2018 08:09
0
1
93
1

Ответы 1

Если вы добавите заголовок Content-Type для text, тогда он должен отображать \n как разрывы строк, и вы не получите все в одной строке.

def send_email(subject, message, receivers):
    msg = email.message.Message()
    sender = "mydomain.com"
    msg["Subject"] = subject
    msg["From"] = sender
    msg["To"] = ", ".join(receivers)
    msg.add_header('Content-Type', 'text')
    msg.set_payload(message)

    smtpObj = smtplib.SMTP("thats.not.cheddar")
    smtpObj.sendmail(msg["From"], msg["To"], msg.as_string())
    smtpObj.quit()

Это тоже ответ, но я решил просто заменить '\ n' из unix на '<BR> \ r \ n'

user20929302 10.08.2018 17:36

Другие вопросы по теме