How do I capture the debug output from the Python smtplib library?
Here is my test program:
import smtplib
s = smtplib.SMTP("mx10.comcast.com")
s.set_debuglevel(1)
s.sendmail("no-such-sender@comcast.com",["no-such-receiver@comcast.com"],"""
from: no-such-sender@comcast.com
to: no-such-receiver@comcast.com
subject: no such message
This message won't be delivered to anybody.
""")
Here is the output:
send: 'ehlo dance.local
'
reply: '250-mx10.comcast.com says EHLO to 129.6.220.67:57015
'
reply: '250-SIZE 40000000
'
reply: '250-PIPELINING
'
reply: '250-ENHANCEDSTATUSCODES
'
reply: '250-8BITMIME
'
reply: '250 XXXXXXXA
'
reply: retcode (250); Msg: mx10.comcast.com says EHLO to 129.6.220.67:57015
SIZE 40000000
PIPELINING
ENHANCEDSTATUSCODES
8BITMIME
XXXXXXXA
send: 'mail FROM:<no-such-sender@comcast.com> size=137
'
reply: '250 2.0.0 MAIL FROM accepted
'
reply: retcode (250); Msg: 2.0.0 MAIL FROM accepted
send: 'rcpt TO:<no-such-receiver@comcast.com>
'
reply: '550 5.1.1 Recipient address rejected: {Gateway}
'
reply: retcode (550); Msg: 5.1.1 Recipient address rejected: {Gateway}
send: 'rset
'
reply: '250 2.0.0 RSET OK
'
reply: retcode (250); Msg: 2.0.0 RSET OK
Traceback (most recent call last):
File "/Users/simsong/x.py", line 11, in <module>
""")
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 742, in sendmail
raise SMTPRecipientsRefused(senderrs)
smtplib.SMTPRecipientsRefused: {'no-such-receiver@comcast.com': (550, '5.1.1 Recipient address rejected: {Gateway}')}
I want the output in a variable, output
. Specifically, I want all of the lines that begin with send:
and reply:
.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…