I just noticed this sentence in my mail: Here's the full list of translations sendmail does between the RFC 3463 DSN values and exit codes:
Just to clarify, that's not be a complete list of DSN codes, you'll need to
check the RFCs for that. But it should be a good starting point for providing
sensible errors. I guess somebody will have to figure out which DSNs apply for
things like database connection errors and the like.
-fr.
On Tue, 3 Feb 2004 20:18:39 -0000
"Aaron Stone" <[EMAIL PROTECTED]> wrote:
> You da man! This is exactly what I was hoping to find :-)
>
> So perhaps insert_messages() should return a "struct DSN status" that is
> translated as appropriate by the caller. If the caller is LMTP, then the codes
> are sent out along along descriptive text. If the caller is "SMTP" / pipe,
> then the codes are translated into exit codes as below, and perhaps with an
> extended message on stdout so that Postfix (maybe others?) can put that
> message into the bounce.
>
> Ilja, I'm going to work up a patch for this support, but won't have much free
> time until Thursday afternoon. Do you mind holding off rc2 for this patch?
>
> struct dsn_status {
> int class;
> int subject;
> int detail;
> }
>
> Maybe have a const char * in there to hold a pointer to the error text? Or
> perhaps a translation function that has all of the errors in a lookup table.
> That would also make it easier to internationalize with gettext at some
> point... I'll think about it this week and do the patch on Thursday!
>
> Aaron
>
>
> Feargal Reilly <[EMAIL PROTECTED]> said:
>
> > The error codes from sysexits.h is the most logical and consistent ones to
> use. I was looking about, and found this list of exit codes sendmail uses.
> >
> > Here's the full list of translations sendmail does between the RFC 3463 DSN
> values and exit codes:
> > 2.*.* EX_OK Successful delivery
> > 4.*.* EX_TEMPFAIL Temporary failure, will keep trying
> > *.0.* EX_UNAVAILABLE Other address status
> > *.1.0 EX_DATAERR Other address status
> > *.1.1 EX_NOUSER Address is that of a bad mailbox 4 (ambiguous
> > address).
> > *.1.2 EX_NOHOST Address of recipient is bad
> > *.1.3 EX_USAGE Address of recipient has bad syntax
> > *.1.4 EX_UNAVAILABLE Address is ambiguous
> > *.1.5 EX_CONFIG Address of destination is valid
> > *.1.6 EX_NOUSER Address has moved, no forwarding
> > *.1.7 EX_USAGE Address of sender has bad syntax
> > *.1.8 EX_NOHOST Address of sender is bad
> > *.2.0 EX_UNAVAILABLE Mailbox status is undefined
> > *.2.1 EX_UNAVAILABLE Mailbox disabled
> > *.2.2 EX_UNAVAILABLE Mailbox full
> > *.2.3 EX_DATAERR Mailbox is too small or message is too large
> > *.2.4 EX_UNAVAILABLE Mailbox led to mail list expansion problems
> > *.3.* EX_OSERR Operating system error
> > *.4.0 EX_IOERR Network error is undefined
> > *.4.1 EX_TEMPFAIL Network: no answer from host
> > *.4.2 EX_IOERR Network bad connection
> > *.4.3 EX_TEMPFAIL Network routing failure
> > *.4.4 EX_PROTOCOL Network unable to route
> > *.4.5 EX_TEMPFAIL Network congestion
> > *.4.6 EX_CONFIG Network routing loop detected
> > *.4.7 EX_UNAVAILABLE Network delivery time expired
> > *.5.* EX_PROOCOL protocol failure
> > *.6.* EX_UNAVAILABLE message contents bad, or media failure
> > *.7.* EX_DATAERR Security: general security rejection
> > 5.*.* EX_UNAVAILABLE any recognized 5.y.z code
> > *.*.* EX_CONFIG any other unrecognized code
> >
> > these are done on a first match basis, so the final *.*.* is the default
> exit code.
> >
> > Note, sendmail uses EX_DATAERR to deal report problems with quotas. To quote
> sysexits(3)
> > BUGS
> > The choice of an appropriate exit value is often ambiguous.
> >
> > EX_DATAERR is possible more appropiate than EX_CANTCREAT since it's not that
> dbmail can't create the entry, it's that dbmail chooses not to create it.
> >
> > I would expect the MTA should do the reporting rather than dbmail itself.
> Even now, there's a bug in the dbmail 1.2.3 which causes some bounces not to
> be sent, due to an incorrect invocation of sendmail. If the bouncing had been
> left to the MTA, this would not have arisen.
> > If the MTA doesn't recognise and report the errors it's given, it has no
> business being an MTA.
> >
> > What should be of more priority would be making sure error messages in the
> output conform to RFCs 1893 and 3463. It should be up to the MTA to decide how
> to convey that error back to the sender.
> >
> > -fr.
> >
> > On Mon, 2 Feb 2004 16:11:04 -0000
> > "Aaron Stone" <[EMAIL PROTECTED]> wrote:
> >
> > > I also read that Procmail will read up to 4K of output from the pipe
> > > delivery
> > > process and will mail that back to the sender.
> > >
> > > Do we prefer our current internal handling of bounces, or should we
> > > switch to
> > > using the MTA for this kind of dirty work?
> > >
> > > Also, if Exim only support EX_CANTCREAT and EX_TEMPFAIL, and treats them
> > > in
> > > the same way, how do we propose to support EX_NOUSER and the like? Is it
> > > the
> > > correct behaviour for us to return EX_NOUSER if there's no such user and
> > > let
> > > Exim handle the rest, generating a permanent message delivery failure?
> > >
> > > Notably absent from the list of return codes is something like
> > > "EX_OVERQUOT"
> > > for an over-quota situation. Should that be a permanent or a temporary
> > > failure? (i.e. should we use EX_CANTCREAT if there's "no space to
> > > create?")
> > >
> > > Aaron
> > >
> > >
> > > ""Christian G. Warden"" <[EMAIL PROTECTED]> said:
> > >
> > > > On Mon, Feb 02, 2004 at 02:54:33PM -0000, Aaron Stone wrote:
> > > > >
> > > > > So following up on the issue of return codes from dbmail-smtp, I'm
> > > > > looking
> > > > > around on the 'net for any documentation about any standards for
> return codes,
> > > > > perhaps de facto standards (e.g. whatever procmail uses). Best I came
> up with
> > > > > was the suggestion to use codes contained in /usr/include/sysexits.h.
> Seems
> > > > > like a pretty good list of codes. Anyone know of anything better?
> > > >
> > > > By default, Exim treats EX_TEMPFAIL and EX_CANTCREAT as temporary
> > > > failures and any other non-zero return codes as permanent failures.
> > > > These are the two return codes that procmail uses.
> > > >
> > > > http://www.exim.org/exim-html-4.30/doc/html/spec_29.html#IX2015
> > > > _______________________________________________
> > > > 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
>
pgpPItlPdCegB.pgp
Description: PGP signature
