That's correct. The pipe interface has significantly reduced ability to
pass useful messages status codes back to the mail system.

If you could arrange an international band of ninjas to twist the arms
of every MTA author and ninja-hack a new, universal schema for
transmitting status codes, the world would be a little better place.

Aaron

On Wed, 2007-07-11 at 14:22 +0800, asianux-dbmail integration team
wrote:
> So, I'm guessing when postfix/ltmp gets 522, it only sees 5.0.0 and just 
> passes the msg from dbmail-ltmpd AS-IS.  postfix/pipe appear to handle it 
> differently and tries to manage the dsn.
> 
> postfix/lmtp[14199]: 4D3DE1049D: to=<[EMAIL PROTECTED]>, 
> relay=10.1.0.37[10.1.0.37]:24, delay=0.1, delays=0.02
> /0.01/0.01/0.06, dsn=5.0.0, status=bounced (host 10.1.0.37[10.1.0.37] said: 
> 522 Recipient <[EMAIL PROTECTED]> Permanent Failure Mai
> lbox Status Mailbox full (in reply to end of DATA command))
> 
> 
> Aaron Stone wrote:
> > Postfix recognizes EX_CANTCREAT as a permanent failure, but
> > unfortunately there's no standard for an over-quota exit code.
> > EX_CANTCREAT is used by a few packages, but not all.
> > 
> > http://www.irbs.net/internet/postfix/0205/2228.html
> > 
> > Looking at the Postfix source, EX_CANTCREAT yields 5.2.0 (as seen in the
> > trace below). There's nothing that yields 5.2.2.
> > 
> >>From postfix-2.3.6/src/global/sys_exits.c:
> > 
> > /* Global library. */
> > 
> > #include <sys_exits.h>
> > 
> > /* Application-specific. */
> > 
> > static SYS_EXITS_DETAIL sys_exits_table[] = {
> >     EX_USAGE, "5.3.0", "command line usage error",
> >     EX_DATAERR, "5.6.0", "data format error",
> >     EX_NOINPUT, "5.3.0", "cannot open input",
> >     EX_NOUSER, "5.1.1", "user unknown",
> >     EX_NOHOST, "5.1.2", "host name unknown",
> >     EX_UNAVAILABLE, "5.3.0", "service unavailable",
> >     EX_SOFTWARE, "5.3.0", "internal software error",
> >     EX_OSERR, "4.3.0", "system resource problem",
> >     EX_OSFILE, "5.3.0", "critical OS file missing",
> >     EX_CANTCREAT, "5.2.0", "can't create user output file",
> >     EX_IOERR, "5.3.0", "input/output error",
> >     EX_TEMPFAIL, "4.3.0", "temporary failure",
> >     EX_PROTOCOL, "5.5.0", "remote error in protocol",
> >     EX_NOPERM, "5.7.0", "permission denied",
> >     EX_CONFIG, "5.3.5", "local configuration error",
> > };
> > 
> > 
> > On Wed, 2007-07-11 at 11:15 +0800, asianux-dbmail integration team
> > wrote:
> >> Oops, spoke too soon.
> >>
> >> Works for dbmail-lmtpd.
> >>
> >> Almost works for dbmail-smtp
> >>
> >> Jul 11 10:56:04 ip37 dbmail/smtp[21501]: Message:[smtp] main.c,main(+388): 
> >> exit code [73] from DSN [522  Permanent Failure Mailbox Status Mailbox 
> >> full]
> >> Jul 11 10:56:04 ip37 dbmail/smtp[21501]: Debug:[dsn] 
> >> dsn.c,dsnuser_free(+230): dsnuser freed
> >> Jul 11 10:56:04 ip37 dbmail/smtp[21501]: Debug:[smtp] main.c,main(+402): 
> >> program memory free
> >> Jul 11 10:56:04 ip37 dbmail/smtp[21501]: Debug:[smtp] main.c,main(+410): 
> >> library memory free
> >> Jul 11 10:56:04 ip37 postfix/pipe[21500]: AB8F110791: to=<[EMAIL 
> >> PROTECTED]>, relay=dbmail-smtp, delay=0.14, delays=0.07/0.01/0/0.06, 
> >> dsn=5.2.0, status=bounced (can't create user output file)
> >>
> >> --Keith
> >>
> >>
> >> Keith Hopkins wrote:
> >>> Hi Aaron,
> >>>
> >>>   Your latest fix works-for-me. :)
> >>>
> >>> Thanks,
> >>> --Keith
> >>>
> >>>
> >>> [EMAIL PROTECTED] wrote:
> >>>> The following issue has been RESOLVED. 
> >>>> ====================================================================== 
> >>>> http://dbmail.org/mantis/view.php?id=617 
> >>>> ====================================================================== 
> >>>> Reported By:                asianux-keith
> >>>> Assigned To:                aaron
> >>>> ====================================================================== 
> >>>> Project:                    DBMail
> >>>> Issue ID:                   617
> >>>> Category:                   general delivery
> >>>> Reproducibility:            always
> >>>> Severity:                   minor
> >>>> Priority:                   normal
> >>>> Status:                     resolved
> >>>> target:                      
> >>>> Resolution:                 fixed
> >>>> Fixed in Version:           2.2.6
> >>>> ====================================================================== 
> >>>> Date Submitted:             28-Jun-07 04:47 CEST
> >>>> Last Modified:              09-Jul-07 01:29 CEST
> >>>> ====================================================================== 
> >>>> Summary:                    bad dsn returned for mailbox over quota
> >>>> Description: 
> >>>> When postfix get over quota message from dbmail, it returns an 'unknown
> >>>> user' message in the bounce.
> >>>>
> >>>> This similar in symptoms to bug 164.
> >>>>
> >>>> dbmail/smtp[17663]: Info:[dsn] dsn.c,dsn_tostring(+168): Invalid dsn code
> >>>> received [6][0][0]
> >>>>
> >>>> 6.x.x doesn't seem valid
> >>>> RFC 1893 suggests X.2.2
> >>>> (so, maybe it should be 4.2.2?)
> >>>>
> >>>> ====================================================================== 
> >>>>
> >>>> ---------------------------------------------------------------------- 
> >>>>  aaron - 29-Jun-07 08:49  
> >>>> ---------------------------------------------------------------------- 
> >>>> Fixed in SVN. 
> >>>>
> >>>> ---------------------------------------------------------------------- 
> >>>>  asianux-keith - 03-Jul-07 11:00  
> >>>> ---------------------------------------------------------------------- 
> >>>> Hi Aaron,
> >>>>
> >>>>   The dsn returned by dsn.c is changed, but postfix is still getting 
> >>>> 5.1.1
> >>>> from pipe.c.  I think the change you made dsn.c (quota is now CLASS_FAIL)
> >>>> is not effective due to the following in pipe.c.
> >>>>
> >>>>                 final_dsn = dsnuser_worstcase_int(has_2, has_4, has_5,
> >>>> has_5_2);
> >>>>                 switch (final_dsn.class) {
> >>>>                 case DSN_CLASS_OK:
> >>>>                         /* Success. Address related. Valid. */
> >>>>                         set_dsn(&delivery->dsn, DSN_CLASS_OK, 1, 5);
> >>>>                         break;
> >>>>                 case DSN_CLASS_TEMP:
> >>>>                         /* sort_and_deliver returns TEMP is useridnr is 
> >>>> 0,
> >>>> aka,
> >>>>                          * if nothing was delivered at all, or for any
> >>>> other failures. */
> >>>>
> >>>>                         /* If there's a problem with the delivery 
> >>>> address,
> >>>> but
> >>>>                          * there are proper forwarding addresses, we're
> >>>> OK. */
> >>>>                         if (dm_list_length(delivery->forwards) > 0) {
> >>>>                                 /* Success. Address related. Valid. */
> >>>>                                 set_dsn(&delivery->dsn, DSN_CLASS_OK, 1,
> >>>> 5);
> >>>>                                 break;
> >>>>                         }
> >>>>                         /* Fall through to FAIL. */
> >>>>                 case DSN_CLASS_FAIL:
> >>>>                         /* Permanent failure. Address related. Does not
> >>>> exist. */
> >>>>                         set_dsn(&delivery->dsn, DSN_CLASS_FAIL, 1, 1);
> >>>>                         break;
> >>>>                 case DSN_CLASS_QUOTA:
> >>>>                         /* Permanent failure. Mailbox related. Over quota
> >>>> limit. */
> >>>>                         set_dsn(&delivery->dsn, DSN_CLASS_FAIL, 2, 2);
> >>>>                         break; 
> >>>>
> >>>> ---------------------------------------------------------------------- 
> >>>>  aaron - 09-Jul-07 01:29  
> >>>> ---------------------------------------------------------------------- 
> >>>> Should actually fixed in SVN now :-) 
> >>>>
> >>>> Issue History 
> >>>> Date Modified   Username       Field                    Change           
> >>>>     
> >>>> ====================================================================== 
> >>>> 28-Jun-07 04:47 asianux-keith  New Issue                                 
> >>>>    
> >>>> 29-Jun-07 08:49 aaron          Status                   new => resolved  
> >>>>    
> >>>> 29-Jun-07 08:49 aaron          Fixed in Version          => 2.2.6        
> >>>>    
> >>>> 29-Jun-07 08:49 aaron          Resolution               open => fixed    
> >>>>    
> >>>> 29-Jun-07 08:49 aaron          Assigned To               => aaron        
> >>>>    
> >>>> 29-Jun-07 08:49 aaron          Note Added: 0002265                       
> >>>>    
> >>>> 03-Jul-07 11:00 asianux-keith  Status                   resolved => 
> >>>> feedback
> >>>> 03-Jul-07 11:00 asianux-keith  Resolution               fixed => 
> >>>> reopened   
> >>>> 03-Jul-07 11:00 asianux-keith  Note Added: 0002273                       
> >>>>    
> >>>> 09-Jul-07 01:29 aaron          Status                   feedback => 
> >>>> resolved
> >>>> 09-Jul-07 01:29 aaron          Resolution               reopened => 
> >>>> fixed   
> >>>> 09-Jul-07 01:29 aaron          Note Added: 0002285                       
> >>>>    
> >>>> ======================================================================
> >>>>
> >>>> _______________________________________________
> >>>> Dbmail-dev mailing list
> >>>> [email protected]
> >>>> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>
> >>>>
> >>>>
> >>>
> >>> _______________________________________________
> >>> Dbmail-dev mailing list
> >>> [email protected]
> >>> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>
> >>>
> >> _______________________________________________
> >> Dbmail-dev mailing list
> >> [email protected]
> >> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> > 
> > _______________________________________________
> > Dbmail-dev mailing list
> > [email protected]
> > http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> > 
> > 
> > 
> 
> _______________________________________________
> Dbmail-dev mailing list
> [email protected]
> http://twister.fastxs.net/mailman/listinfo/dbmail-dev

_______________________________________________
Dbmail-dev mailing list
[email protected]
http://twister.fastxs.net/mailman/listinfo/dbmail-dev

Reply via email to