smtplib, capturing output from set_debuglevel ??
Steve Holden
steve at holdenweb.com
Fri Oct 8 08:58:05 EDT 2004
Tim Williams wrote:
> [apologies if you got this twice]
>
> ----- Original Message -----
> From: "Josiah Carlson" <jcarlson at uci.edu>
>
>>>If you want to use file primitives to read the value back, just create
>>>another one:
>>>
>>>inpt = StringIO.StringIO(firstStringIO.getvalue())
>>>
>>>then you can read the printed output from inpt just like a file.
>>
>>Or even:
>>
>> firstStringIO.seek(0)
>>
>> - Josiah
>
>
> Steve, Andrew, Josiah,
>
> Thanks for your answers.
>
> The outgoing SMTP is multi-threaded, so the threads disrupt each other's
> output to the file-like object if there is any concurrent outgoing mail
> activity.
>
> Is there anyway I can seperate the output from each thread and capture it ?
>
> The outgoing threads are started with
>
> thread.start_new_thread(outThread,(args,None))
>
> One thread per out-going message. Each handles the outgoing message sending
> and error-handling for the message. I can't talk back to the calling
> thread/class because it is the incoming SMTP part and it is destroyed when
> the remote client connection is dropped. (The SMTP server is a filtering
> relay)
>
AT this point I might be tempted to modify the smtplib code so it
doesn't use sys.stdout for its debug output, but some other object that
can be passed to SMTP.__init__().
Since sys.stdout is going to be common to all modules, I think you have
highlighted a weakness in the smtplib debugging paradigm. But if some
smart type can come up with a better solution I'd love to see it.
regards
Steve
--
http://www.holdenweb.com
http://pydish.holdenweb.com
Holden Web LLC +1 800 494 3119
More information about the Python-list
mailing list