2017-11-05 14 views
0

msg値は、送信したい完全なエラーメッセージではなく、単に電子メールで空白のメッセージを表示します。私はtraceback.format_exc()を含む他のバリエーションのエラーを試しましたが、電子メール出力は常に空白です。なぜtraceback.print_excは送信された電子メールに対して空白の出力を作成しますか?

msg = (traceback.print_exc()) 
server.sendmail(fromaddr, toaddrs, msg) 
+0

'print_exc'は' Noneを返します'無条件に' print'が行うように 'format_exc'は文字列' print_exc'を返します。何も処理されていなければ 'NoneType:None \ n''を返します。要するに、あなたの質問を編集し、私たちが再現できるものを提供してください。 –

+0

'server.sendmail(fromaddr、toaddrs、None)'出力が空白か 'None'かを確認してください。 –

答えて

0

msg = traceback.format_exc().replace(':','=>',1) # only the first, to not alter the traceback 
server.sendmail(fromaddr, toaddrs, msg) 
+0

"NoneType None"のメールが届きました。それはすべてのコンソールのようには見えません。 –

+0

は、トレースするエラーがないようです。 – PRMoureu

+0

私はformat_exc()を使用しています。 –

0

おそらく、print_execの代わりにtraceback.format_exc()のようなものが必要です。

私はまだ理由を探していますが、メッセージのコロン :は、最初の行には受け入れられない何らかの理由で、醜い回避策は、それを置き換えることです
関連する問題