Re: smtplib

2006-06-08 חוט Ori Peleg
Hi Eli!

Here's an idea:

It seems class smtplib.SMTP sends the message with method 'send', that calls a
socket's 'sendall' (from Python 2.4's smtplib.py)

def send(self, str):
Send `str' to the server.
# .. skipping
self.sock.sendall(str)
# .. skipping

You could subclass smtplib.SMTP, and reimplement method 'send' using Socket.send
instead of Socket.sendall to send chunks, and do whatever you want then.

For example, you could call a callback with the bytes sent:

def send(self, str, chunk_size=512, callback=lambda bytes_sent: None):
Send `str' to the server.
# .. skipping
bytes_sent = 0
while bytes_sent  len(str):
chunk = str[bytes_sent:bytes_sent+chunk_size]
bytes_sent += self.sock.send(chunk)
callback(bytes_sent)
# .. skipping

I haven't tested it, but it seems about right.

Ori.

Eli Golovinsky wrote:
 I am sending large email messages (with MIME parts) using this recipe :
 
 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/473810
 
 
 But I can't find any way to monitor the progress (i.e. how many bytes
 have been delivered until now) of  the sending.
 
 
 Anybody has an idea how I can accomplish that?
 
 
 
 


smtplib

2006-06-07 חוט Eli Golovinsky

I am sending large email messages (with MIME parts) using this recipe :

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/473810


But I can't find any way to monitor the progress (i.e. how many bytes 
have been delivered until now) of  the sending.



Anybody has an idea how I can accomplish that?