-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jason R. Mastaler wrote:
> Stephen Warren <[EMAIL PROTECTED]> writes:
> 
>> On this specific point - what should the behavior be? I'm honestly
>> confused *why* the person who reported the problem with the
>> exception handler that I added thought the behavior was incorrect -
>> there *was* a problem, and it was reported as an SMTP error message.
> 
> Take another look at the thread[1].  The user sent mail to a malformed
> address, and tmda-ofmipd returned an error.  That's not the behavior
> one expects when they send mail to a bogus address.  They send the
> message, it gets transferred, and the relaying SMTP server bounces it
> back with an informative message.  If tmda-ofmipd is circumventing
> this process, it's going to cause confusion, not necessarily because
> tmda-ofmipd is wrong for trapping an exception, but that it's not the
> expected behavior.

Now I recall.

So, my points:

1) I believe that the underlying SMTP server itself refused to accept
the message (i.e. returned an SMTP error code for the MAIL FROM, RCPT or
DATA command). It was not actually tmda-ofmipd that rejected the message
as unparseable, but the SMTP server itself. I think I thought otherwise
before, simply because the exception traces weren't that clear to me and
I didn't spend enough time analyzing them.

2) The above SMTP server behavior is pretty typical in the case where
one sends to an unknown local user (and as evidenced by the original
problem report, when the SMTP server can't even parse the address). For
example, if I connect to my postfix system (directly, or proxied via
tmda-ofmipd - doesn't matter), and send mail to
[EMAIL PROTECTED], postfix won't even accept the mail to
generate a bounce, but instead will return an SMTP error code. In this
case, tmda-ofmipd must pass that error back to the client somehow.

postfix will accept mail (and generate bounces) for non-local recipients
e.g when I send to [EMAIL PROTECTED], or delivery
timeouts etc. etc.

3) Think of what happens when the underlying SMTP server runs out of
disk space, processes or whatever, and physically can't accept the mail
to generate a bounce later - again, we must pass such errors directly
back to the mail client.

4) tmda-ofmipd also can internally generate some errors. For example, a
syntax error in the outbound filter. This is in fact the situation that
caused me to originally add the exception handler.

> No, I think the relaying SMTP server (Postfix, qmail, etc) should deal
> with this and report this as problem to the user.  When a user sends
> mail to a bogus address, he expects to find a bounced message in his
> mailbox informing him of this.  This is just one example, but I think
> the general principle is important.

For the reasons above, I don't think this is possible in general.

> I also want to get away from trying to code around deficiencies in
> Thunderbird.  Thunderbird handles some of these cases differently
> (incorrectly I believe) than every other MUA.  tmda-ofmipd shouldn't
> be covering Thunderbird's ass.  By doing so it prevents those bugs
> from being fixed in Thunderbird.

True, Thunderbird's behavior is a bug in Thunderbird. One day, it will
be fixed (maybe it already is - I haven't been able to reproduce the
connection drop recently to test this!)

> So I'm just saying, let's make sure
> we are thinking about these issues from a wide and general
> perspective.

True. I certainly added the SMTP error code reporting (instead of
previous dropped connections) to solve the Thunderbird issue.

However, I also believe that simply dropping the connection is
completely the wrong thing to do in *any* situation, simply because
that's not how the SMTP protocol works - errors are indicated by passing
back well-formed error codes, not by dropping the connection.

So, I believe I'd still solve the issue the way I did even if I wasn't a
Thunderbird user, honestly (not that I probably would have ever found
the issue, but...)

Solving this would also solve the test-with-telnet issue - a valid error
message would be sent back to the end user immediately; much easier to
see the error than checking a log-file or separate window for the debug log.

So, I believe returning SMTP error codes instead of dropping the
connection makes tmda-ofmipd more RFC compliant, and more debuggable
(and debugging mail systems can be hard enough - the more help the better!)

Oh, and finally - even with a 100% correct mail client, sending back
error messages (with useful text) allows the MUA to give that error
message to the user (who can then pass it to tech support). Simply
dropping the connection only allows the MUA to say "connection dropped",
not why.

One note: I believe tmda-ofmipd currently does usually send back SMTP
error codes with the exception text, just like I'd like it to. However,
there are obviously a couple of cases where that doesn't currently
happen for some reason. That's what I'd like to fix - to make things
consistent.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFVWDthk3bo0lNTrURAk+0AKDILDQZCvxOi84AahDXe1v1ADjEaACgnf/A
viWmwHlcZbZWKTfs+jjsV5o=
=GLbe
-----END PGP SIGNATURE-----
_____________________________________________
tmda-users mailing list (tmda-users@tmda.net)
http://tmda.net/lists/listinfo/tmda-users

Reply via email to