Thanks!!<br><br>That worked great.&nbsp; <br><br>minor typo<br><br>def sent(r):<br> &nbsp; &nbsp; print &quot;message sent:&quot;, r<br><br><br>A question.<br>In Phil Mayer's example and Marcin Kasperski's example, it seems like there is a new tcp/ip connection made for each email.&nbsp;&nbsp; Suppose, I want to send multiple emails to the same smtp server.&nbsp; How would that work?
<br><br>Thanks<br>Alvin<br><b id="_user_Marcin.Kasperski@softax.com.pl"><br><br> </b><div><span class="gmail_quote">On 11/4/06, <b class="gmail_sendername">Phil Mayers</b> &lt;<a href="mailto:p.mayers@imperial.ac.uk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
p.mayers@imperial.ac.uk</a>&gt; wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Alvin Wang wrote:<br>&gt; I modified this example<br><br>You broke the example.<br><br>

Try this, hopefully it is clearly what is happening:<br><br>import StringIO<br><br>from twisted.application import service<br><br>application = service.Application(&quot;SMTP Client Tutorial&quot;)<br><br>from twisted.application

 import internet<br>from twisted.python import log<br>from twisted.internet import defer, reactor<br>from twisted.mail import smtp<br><br>mailFrom = &quot;<a href="mailto:from@example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
from@example.com</a>&quot;<br>mailTo = [&quot;
<a href="mailto:to@example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">to@example.com</a>&quot;,]<br>mail = StringIO.StringIO(&quot;&quot;&quot;Date: Fri, 3 Nov 2006 230:14:39 +0000<br>From: 
<a href="mailto:from@example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">from@example.com</a><br>To: <a href="mailto:to@example.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

to@example.com</a><br>Subject: Tutorate!<br><br>Hello, how are you, goodbye.<br>&quot;&quot;&quot;)<br><br>whenDone = defer.Deferred()<br><br>def send(r):<br>&nbsp;&nbsp;&nbsp;&nbsp; print &quot;message sent:&quot;, r<br><br>whenDone.addCallbacks

(sent, log.err)<br><br>def done(d):<br>&nbsp;&nbsp;&nbsp;&nbsp; from twisted.internet import reactor<br>&nbsp;&nbsp;&nbsp;&nbsp; reactor.callLater(1, reactor.stop)<br><br>whenDone.addBoth(done)<br><br>sender = smtp.ESMTPSenderFactory(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'YOURUSERNAME',
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'YOURPASSWORD',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailFrom,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailTo,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mail,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; whenDone,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br><br>smtpClientService = internet.TCPClient('YOURSERVER', 25, sender)<br>smtpClientService.setServiceParent

(application)<br><br><br>_______________________________________________<br>Twisted-Python mailing list<br><a href="mailto:Twisted-Python@twistedmatrix.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Twisted-Python@twistedmatrix.com</a><br><a href="http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python</a><br></blockquote></div><br><br clear="all"><br>-- <br>Alvin Wang<br>Gigachannels<br>650 248 9416