<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>I also tried to figure out how to deliver one copy of a message instead of one for every recipient for a Twisted server tutorial (ticket #3324) which hasn't yet been finalized.  Here's the way I went about it but I'd appreciate comments on the approach as well.</div><div><br></div><div>For the IMessageDelivery.validateTo method, it generates the real IMessage object when it receives the first recipient.  After that, it returns a NullMessage object for each subsequent recipient.  The NullMessage object is called for each line received as part of the message but does nothing with it.  Then you don't need to change _cbToValidate.  Here's you're code with the modifications <a href="http://pastebin.com/6nFXiTgK">http://pastebin.com/6nFXiTgK</a>.</div><div><br></div><div>Stacey</div><div><br></div><div><br></div><div><br><div><div>On Nov 6, 2013, at 5:08 AM, Fabio Sangiovanni <<a href="mailto:sangiovanni@nweb.it">sangiovanni@nweb.it</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hello list,<br>
    <br>
    I'm new to twisted and to python in general, so still deep in the
    learning process.<br>
    Please forgive any faulty assumptions you'll find in this post :)<br>
    <br>
    I'm trying to accomplish to the following task: realize a tool that
    acts as a proxy between the SMTP domain and the 'objects' domain.
    That is: a daemon that listens for SMTP connections (relayed
    sessions from Postfix) and bundles everything that belongs to a
    single session (envelope sender, envelope recipients, headers, body)
    into an object (it will probably become a JSON one day, not decided
    yet). The aim is to allow further processing (es. publishing to a
    queue) of a self-contained item.<br>
    <br>
    My (draft) implementation can be reached at
    <a class="moz-txt-link-freetext" href="http://pastebin.com/mbRztuid">http://pastebin.com/mbRztuid</a><br>
    <br>
    My main concerns are:<br>
    1) am I using the right classes? My implementation leverages
    twisted.mail.smtp, is this correct?<br>
    2) I've overridden smtp.SMTP.<span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none; "></span><span class="me1" style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; "></span>_cbToValidate;
    I really don't like this very much (I'd like to leave the protocol
    untouched) but it's the only way I've come up with (after several
    days of experiments :) ) to have one single payload down the line
    (in smtp.SMTP.do_DATA), and not one copy of the message for every
    single recipient. May this have bad consequences?<br>
    3) what do you think about the overall approach? could it have been
    done differently/better?<br>
    <br>
    Thanks a lot for your help!<br>
    <br>
    Fabio<span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none; "></span>
  </div>

_______________________________________________<br>Twisted-Python mailing list<br><a href="mailto:Twisted-Python@twistedmatrix.com">Twisted-Python@twistedmatrix.com</a><br>http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python<br></blockquote></div><br></div></body></html>