Ok, then you're still up, and I just fixed the other two sections of code :-)

Aaron


Ilja Booij <[EMAIL PROTECTED]> said:

> Hi,
> 
> (respone inline)
> 
> Aaron Stone wrote:
> 
> > In this example, there are three recipients, pat, jones and green. Following
> > the data command, there are only two acknowledgements. This is contrary to 
> > my
> > understanding that each recipient had to be acknowledged:
> > 
> >    The LMTP protocol causes the server to return, after the final "." of
> >    the DATA command, one reply for each recipient.  Therefore, if the
> >    queue manager is configured to use LMTP instead of SMTP when
> >    transferring messages to the delivery agents, then the delivery
> >    agents may attempt delivery to each recipient after the final "." and
> >    individually report the status for each recipient.  Connections which
> >    should use the LMTP protocol are drawn in the diagram above using
> >    asterisks.
> > 
> > So looking at jones, it is clear why: jones failed the RCPT command, and so
> > was no longer in the recipient list when the DATA command came around. Then
> 
> Clear :)
> 
> > read this:
> > 
> >    The additional restriction is that when there have been no successful
> >    RCPT commands in the mail transaction, the DATA command MUST fail
> >    with a 503 reply code.
> > 
> >    The change is that after the final ".", the server returns one reply
> >    for each previously successful RCPT command in the mail transaction,
> >    in the order that the RCPT commands were issued.  Even if there were
> >    multiple successful RCPT commands giving the same forward-path, there
> >    must be one reply for each successful RCPT command.
> > 
> > I think that what the first paragraph in this quote means is not that DATA 
> > is
> > failed, per se, but that the whole conversation is flagged with a 503.
> > 
> > So here's what I think needs to be fixed:
> > 
> >  - If there are no recipients, use 503 AND NOTHING ELSE to report it,
> >    which means changing this section of code to use a 503:
> > 
> > if (!has_recipients)
> >  {
> >    trace(TRACE_DEBUG,"main(): no valid recipients found, cancel message.");
> >    fprintf((FILE *)stream, "554 No valid recipients.\r\n" );
> >  }
> 
> Yep, change the 554 to 503
> 
> > 
> >  - When a recipient is failed, report the error and then *remove that
> >    recipient from the dsnusers list* so that after the message is
> >    received, their failure is not reported a second time.
> 
> Sounds good :)
> > 
> > I'll get on it this afternoon, please test it in the morning, your time!
> I will.
> 
> Ilja
> 
> > 
> > Ilja Booij <[EMAIL PROTECTED]> said:
> > 
> > 
> >>After some more reading of RFC 2033 I'm inclined to believe an LMTP 
> >>client does not get a response after sending the DATA, except for the 
> >>responses about the delivery of the message to the users.
> >>
> >>Example session from the RFC:
> >>
> >>    S: 220 foo.edu LMTP server ready
> >>    C: LHLO foo.edu
> >>    S: 250-foo.edu
> >>    S: 250-PIPELINING
> >>    S: 250 SIZE
> >>    C: MAIL FROM:<[EMAIL PROTECTED]>
> >>    S: 250 OK
> >>
> >>    C: RCPT TO:<[EMAIL PROTECTED]>
> >>    S: 250 OK
> >>    C: RCPT TO:<[EMAIL PROTECTED]>
> >>    S: 550 No such user here
> >>    C: RCPT TO:<[EMAIL PROTECTED]>
> >>    S: 250 OK
> >>    C: DATA
> >>    S: 354 Start mail input; end with <CRLF>.<CRLF>
> >>    C: Blah blah blah...
> >>    C: ...etc. etc. etc.
> >>    C: .
> >>    S: 250 OK
> >>    S: 452 <[EMAIL PROTECTED]> is temporarily over quota
> >>    C: QUIT
> >>    S: 221 foo.edu closing connection
> >>
> >>The important bit is after the DATA line
> >>there are two responses from the server after the data line:
> >>1. "250 OK": the message to [EMAIL PROTECTED] was delivered
> >>2. "452 <[EMAIL PROTECTED]> is temporarily over quota", the message to 
> >>[EMAIL PROTECTED] was not delivered.
> >>
> >>There is no line indicating that the message was received by the server. 
> >>The server should only indicate when a message was not received correctly.
> >>
> >>I'll complete remove the
> >>fprintf((FILE *)stream, "250 Message received OK\r\n"); line
> >>
> >>
> >>Ilja Booij wrote:
> >>
> >>
> >>>Hi,
> >>>
> >>>Removing the
> >>>"250 Message received OK" after having received the message takes care 
> >>>of the error. I can just send several messages, with
> >>>"lmtp_cache_connection = yes" in /etc/postfix/main.cf
> >>>
> >>>I'm starting to wonder whether LMTP requires us to send a message if the 
> >>>message was received OK by the server.
> >>>
> >>>Ilja
> >>>
> >>>Ilja Booij wrote:
> >>>
> >>>
> >>>>Hi,
> >>>>
> >>>>with some help from a guy on [EMAIL PROTECTED] I found something:
> >>>>
> >>>>The "250 Recipient <[EMAIL PROTECTED]> OK" message from
> >>>>dbmail-lmtp is out of sync. The postfix/lmtp program stores this 
> >>>>message until the next message is sent, causing the messages between 
> >>>>postfix and dbmail-smtp to be horribly out-of-sync.
> >>>>
> >>>>I guess this should be quite easy to fix. I'll see if I have some time 
> >>>>to do it this weekend. Otherwise I'll do it on Monday. Unless anybody 
> >>>>else wants to do it of course ;)
> >>>>
> >>>>I'll be off in a few minutes. First a beer, then it's off to home :)
> >>>>
> >>>>Have a nice weekend!
> >>>>
> >>>>Ilja
> >>>>
> >>>>
> >>>>Ilja Booij wrote:
> >>>>
> >>>>
> >>>>>Hmm, I still don't really understand the problem. I've done some 
> >>>>>ngrep-ing, to see what goes over the network.
> >>>>>
> >>>>>This is a session that's OK:
> >>>>>
> >>>>>T 2004/03/05 13:45:46.324232 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  220 test01 DBMail LMTP service ready to rock..
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.324696 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  LHLO test01.office.fastxs.net..
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.324900 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250-test01..250-PIPELINING..250-ENHANCEDSTATUSCODES..250 SIZE..
> >>>>>#
> >>>>>T 2004/03/05 13:45:46.325306 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  MAIL FROM:<[EMAIL PROTECTED]> SIZE=866..RCPT 
> >>>>>TO:<[EMAIL PROTECTED]>..DATA..
> >>>>>#
> >>>>>T 2004/03/05 13:45:46.325479 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 Sender <[EMAIL PROTECTED]> OK..
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.365648 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 Recipient <[EMAIL PROTECTED]> OK..354 Start mail 
> >>>>>input; end with <CRLF>.<CRLF>..
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.365974 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  Received: from earthquake.office.fastxs.net 
> >>>>>(earthquake.office.fastxs.net [10.0.1.15])...by test01.office.fastxs.n
> >>>>>  et (Postfix) with ESMTP id 394DD19F30A...for 
> >>>>><[EMAIL PROTECTED]>; Fri,  5 Mar 2004 13:45:46 +0100 (C
> >>>>>  ET)..Received: from earthquake.office.fastxs.net (localhost 
> >>>>>[127.0.0.1])...by earthquake.office.fastxs.net (Postfi
> >>>>>  x) with ESMTP id 405D4375FE...for 
> >>>>><[EMAIL PROTECTED]>; Fri,  5 Mar 2004 13:49:12 +0100 
> >>>>>(CET)..Receiv
> >>>>>  ed: (from [EMAIL PROTECTED])...by earthquake.office.fastxs.net 
> >>>>>(8.12.9/8.12.9/Submit) id i25CnCo0005116...for target@
> >>>>>  test01.office.fastxs.net; Fri, 5 Mar 2004 13:49:12 +0100 
> >>>>>(CET)..Date: Fri, 5 Mar 2004 13:49:12 +0100 (CET)..From:
> >>>>>  Ilja Booij <[EMAIL PROTECTED]>..Message-Id: 
> >>>>><[EMAIL PROTECTED]
> >>>>>  net>..To: [EMAIL PROTECTED]: 5-3 
> >>>>>27......27.....
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.568851 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 Message received OK..
> >>>>>##
> >>>>>T 2004/03/05 13:45:46.608610 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  c..
> >>>>>
> >>>>>
> >>>>>
> >>>>>If another message is sent (over the same connection):
> >>>>>
> >>>>>
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.879964 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  RSET..
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.880127 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  MAIL FROM:<[EMAIL PROTECTED]> SIZE=858..RCPT 
> >>>>>TO:<[EMAIL PROTECTED]>..DATA..
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.880368 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 OK..
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.880460 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 Sender <[EMAIL PROTECTED]> OK..
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.883495 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  250 Recipient <[EMAIL PROTECTED]> OK..
> >>>>>##
> >>>>>T 2004/03/05 13:46:01.883541 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  354 Start mail input; end with <CRLF>.<CRLF>..
> >>>>>##
> >>>>>T 2004/03/05 13:47:41.920055 127.0.0.1:46715 -> 127.0.0.1:10024 [AP]
> >>>>>  RSET..QUIT..
> >>>>>###
> >>>>>T 2004/03/05 13:52:41.875033 127.0.0.1:10024 -> 127.0.0.1:46715 [AP]
> >>>>>  500 Error reading header...
> >>>>>#
> >>>>>
> >>>>>You can see that the client (postfix) starts with an RSET command, 
> >>>>>and starts sending MAIL_FROM, RCPT and DATA.
> >>>>>The server responds with 250 OK to the reset, and 250 Sender OK and 
> >>>>>250 Recipient OK, and lets the client start sending (354 Start mail 
> >>>>>input).
> >>>>>
> >>>>>The problem is that Postfix detects that it should not send data, 
> >>>>>because the message is supposedly bounced by dbmail.. But why?
> >>>>>
> >>>>>Ilja
> >>>>>
> >>>>>Ilja Booij wrote:
> >>>>>
> >>>>>
> >>>>>>Hi,
> >>>>>>
> >>>>>>Robert, thanks for your suggestion. It seems to work perfectly here. 
> >>>>>>Messages now get delivered to users without a problem.
> >>>>>>
> >>>>>>I'll take a look at lmtp.c to see if I can spot the difference 
> >>>>>>between the server getting a QUIT from the client and a reconnection 
> >>>>>>on a new message, and a cached connection.
> >>>>>>
> >>>>>>Ilja
> >>>>>>
> >>>>>>
> >>>>>>Robert Theisen wrote:
> >>>>>>
> >>>>>>
> >>>>>>>New to the list here.  But I read over the archives regarding this 
> >>>>>>>problem and I may have a little to add.
> >>>>>>>
> >>>>>>>I was able to get postfix to consistently deliver via lmtp to 
> >>>>>>>dbmail (even two consecutive messages to the same user) by setting 
> >>>>>>>the postfix directive  lmtp_cache_connection to false  instead of 
> >>>>>>>true.  This would termintate the lmtp connection after each 
> >>>>>>>delivery.  I assume, with lmtp_cache_connection turned on, the 
> >>>>>>>connection would die after lmtp_timeout was reached and a new 
> >>>>>>>connection would be established and the mail would get sent.  This 
> >>>>>>>may have been a "neat feature" that works with Cyrus (postfix's 
> >>>>>>>preferred lmtp client) or it may be a specification of the lmtp rfc 
> >>>>>>>(I have not read it).  But it seems like a simple enough fix to 
> >>>>>>>make it work.  It would probably just involve having the 
> >>>>>>>conversation status fall back to a state the postfix expects after 
> >>>>>>>message delivery and waiting in that state until either the 
> >>>>>>>connection terminates or the conversation picks up again.   I took 
> >>>>>>>a cursory glance at the lmtp.c and lmtpd.c code but did not have 
> >>>>>>>enough time to really dig into it.
> >>>>>>>Good Luck.  I am anxiously awaiting the 2.0 release.  :)
> >>>>>>>
> >>>>>>>Robert Theisen
> >>>>>>>
> >>>>>>>Aaron Stone wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>>Sure thing, I've got about an hour of time this morning. Looks 
> >>>>>>>>like you're
> >>>>>>>>burning the midnight oil over there! Yikes!
> >>>>>>>>
> >>>>>>>>Aaron
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>Ilja Booij <[EMAIL PROTECTED]> said:
> >>>>>>>>
> >>>>>>>> 
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>Hi,
> >>>>>>>>>
> >>>>>>>>>I haven't been able to find the cause of the problem yet. I found 
> >>>>>>>>>some more info in the logs though:
> >>>>>>>>>
> >>>>>>>>>Mar  4 16:55:34 test01 postfix/lmtp[21340]: 3378119F30A: 
> >>>>>>>>>to=<[EMAIL PROTECTED]>, 
> >>>>>>>>>relay=localhost.fastxs.net[127.0.0.1], delay=0, status=bounced 
> >>>>>>>>>(host localhost.fastxs.net[127.0.0.1] said: 250 Recipient 
> >>>>>>>>><[EMAIL PROTECTED]> OK)
> >>>>>>>>>
> >>>>>>>>>apparently, postfix thinks we want to bounce the message. But 
> >>>>>>>>>why? A previous message to the same user arrives correctly..
> >>>>>>>>>
> >>>>>>>>>strange, looking further. Aaron, can you also take a look at this?
> >>>>>>>>>
> >>>>>>>>>Ilja
> >>>>>>>>>
> >>>>>>>>>Ilja Booij wrote:
> >>>>>>>>>
> >>>>>>>>> 
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>OK, I've found something:
> >>>>>>>>>>
> >>>>>>>>>>It seems that Postfix sends a RSET command, when we expect to 
> >>>>>>>>>>get the header.
> >>>>>>>>>>
> >>>>>>>>>>readheader() then waits for postfix to send more, while postfix 
> >>>>>>>>>>waits for a '250 OK' Message from dbmail-lmtp.
> >>>>>>>>>>
> >>>>>>>>>>So, there's probably something wrong in our LMTP-logic.
> >>>>>>>>>>I'll take a look at it, after I've done some small scripting job 
> >>>>>>>>>>here for a customer.
> >>>>>>>>>>
> >>>>>>>>>>Ilja
> >>>>>>>>>>
> >>>>>>>>>>Ilja Booij wrote:
> >>>>>>>>>>
> >>>>>>>>>> 
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>OK,
> >>>>>>>>>>>
> >>>>>>>>>>>this seems to have tackled the problem of the double delivery :)
> >>>>>>>>>>>
> >>>>>>>>>>>There still is another problem though:
> >>>>>>>>>>>It still seems to hang for a while on every second delivery 
> >>>>>>>>>>>attempt to the LMTP daemon.
> >>>>>>>>>>>
> >>>>>>>>>>>Can you try the following scenario:
> >>>>>>>>>>>
> >>>>>>>>>>>* configure MTA to use dbmail-lmtp for delivery
> >>>>>>>>>>>* send message to a recipient
> >>>>>>>>>>>* verify that the message is received using dbmail-lmtp
> >>>>>>>>>>>* send a second message.
> >>>>>>>>>>>
> >>>>>>>>>>>What I observe here is that the second message takes a lot 
> >>>>>>>>>>>longer to be delivered than the first one. The second one is 
> >>>>>>>>>>>only delivered after minutes.
> >>>>>>>>>>>
> >>>>>>>>>>>I have the feeling that something is not right here..
> >>>>>>>>>>>
> >>>>>>>>>>>Ilja
> >>>>>>>>>>>
> >>>>>>>>>>>Aaron Stone wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>  
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>>New versions checked in, though not extensively tested yet.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Ilja Booij <[EMAIL PROTECTED]> said:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>    
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>sounds ok to me :)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>Ilja
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>Aaron Stone wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>      
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>Working on it as we speak! Catch you in about an hour?
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>Aaron
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>Ilja Booij <[EMAIL PROTECTED]> said:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>        
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>Hi,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>Aaron Stone wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>          
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>The reason for the double deliveries in the LMTP daemon is 
> >>>>>>>>>>>>>>>>because the old
> >>>>>>>>>>>>>>>>insert_messages() function used to take lists of users to 
> >>>>>>>>>>>>>>>>directly deliver.
> >>>>>>>>>>>>>>>>The new insert_messages() function takes a list of dsnuser 
> >>>>>>>>>>>>>>>>structures, and
> >>>>>>>>>>>>>>>>expects that *either* the useridnr field is filled (for 
> >>>>>>>>>>>>>>>>direct-to-useridnr
> >>>>>>>>>>>>>>>>delivery, which isn't supported by any of the frontends, 
> >>>>>>>>>>>>>>>>but is supported in
> >>>>>>>>>>>>>>>>the lower layers ;-) or the address field, which is first 
> >>>>>>>>>>>>>>>>checked as a
> >>>>>>>>>>>>>>>>username and then as an alias (this allows usernames in 
> >>>>>>>>>>>>>>>>the form of
> >>>>>>>>>>>>>>>>'[EMAIL PROTECTED]' to operate without requiring an alias 
> >>>>>>>>>>>>>>>>that 
> >>>>>>>>>>>>>>>>says '[EMAIL PROTECTED]
> >>>>>>>>>>>>>>>>delivers to [EMAIL PROTECTED]').
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>Some refactoring might be necessary, because we need to 
> >>>>>>>>>>>>>>>>inform the MTA
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>whether
> >>>>>>>>>>>>
> >>>>>>>>>>>>    
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>>>or not its envelope recipients were valid before it will 
> >>>>>>>>>>>>>>>>send us the message.
> >>>>>>>>>>>>>>>>This means users need to be validated before 
> >>>>>>>>>>>>>>>>read_header(), which is a
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>problem
> >>>>>>>>>>>>
> >>>>>>>>>>>>    
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>>>because at the moment this vaildation happens in 
> >>>>>>>>>>>>>>>>insert_messages().
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>OK, that's clear
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>          
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>Fine and dandy in pipe land, where the MTA will send the 
> >>>>>>>>>>>>>>>>message
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>regardless of
> >>>>>>>>>>>>
> >>>>>>>>>>>>    
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>>>the disposition of the recipients, and only at the very 
> >>>>>>>>>>>>>>>>end are error
> >>>>>>>>>>>>>>>>conditions returned as exit codes... in LMTP land we need 
> >>>>>>>>>>>>>>>>to know ahead of
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>time.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>        
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>I think what I'll do is move the user validation code from 
> >>>>>>>>>>>>>>>>insert_messages()
> >>>>>>>>>>>>>>>>into dsn.c, perhaps calling it dsn_check_users() or 
> >>>>>>>>>>>>>>>>dsn_prepare_deliveries().
> >>>>>>>>>>>>>>>>Then, we'll have this order:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>For command-line and envelope-recipient deliveries:
> >>>>>>>>>>>>>>>>- receive addresses and store them into the dsnusers list.
> >>>>>>>>>>>>>>>>- dsn_prepare_deliveries()
> >>>>>>>>>>>>>>>>- if no deliveries are valid, return an error.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>- read_header()
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>For deliver-to header deliveries:
> >>>>>>>>>>>>>>>>- mime_readheader()
> >>>>>>>>>>>>>>>>- mail_adr_list()
> >>>>>>>>>>>>>>>>- dsn_prepare_deliveries()
> >>>>>>>>>>>>>>>>- if no deliveries are valid, return an error.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>- insert_messages()
> >>>>>>>>>>>>>>>>                
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>I like the part where you say 'What I'll do' :)
> >>>>>>>>>>>>>>>Do you think this work will take long? I think we must 
> >>>>>>>>>>>>>>>really release rc3 tomorrow (Friday, March 5th). This stuff 
> >>>>>>>>>>>>>>>really has to work if we want to release.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>Ilja
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>_______________________________________________
> >>>>>>>>>>>>>>>Dbmail-dev mailing list
> >>>>>>>>>>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>>>>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>              
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>            
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>_______________________________________________
> >>>>>>>>>>>>>Dbmail-dev mailing list
> >>>>>>>>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>          
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>        
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>_______________________________________________
> >>>>>>>>>>>Dbmail-dev mailing list
> >>>>>>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>>>>>>      
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>_______________________________________________
> >>>>>>>>>>Dbmail-dev mailing list
> >>>>>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>>>>>    
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>_______________________________________________
> >>>>>>>>>Dbmail-dev mailing list
> >>>>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>>>>
> >>>>>>>>>  
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> 
> >>>>>>>>
> >>>>>>>
> >>>>>>>_______________________________________________
> >>>>>>>Dbmail-dev mailing list
> >>>>>>>Dbmail-dev@dbmail.org
> >>>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>_______________________________________________
> >>>>>>Dbmail-dev mailing list
> >>>>>>Dbmail-dev@dbmail.org
> >>>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>
> >>>>>
> >>>>>
> >>>>>_______________________________________________
> >>>>>Dbmail-dev mailing list
> >>>>>Dbmail-dev@dbmail.org
> >>>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>
> >>>>
> >>>>_______________________________________________
> >>>>Dbmail-dev mailing list
> >>>>Dbmail-dev@dbmail.org
> >>>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>
> >>>_______________________________________________
> >>>Dbmail-dev mailing list
> >>>Dbmail-dev@dbmail.org
> >>>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>
> >>_______________________________________________
> >>Dbmail-dev mailing list
> >>Dbmail-dev@dbmail.org
> >>http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>
> > 
> > 
> > 
> > 
> _______________________________________________
> Dbmail-dev mailing list
> Dbmail-dev@dbmail.org
> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> 



-- 



Reply via email to