Print

Print


technically, RFC 2821 states:

 The first or only argument to this command includes a forward-path
   (normally a mailbox and domain, always surrounded by "<" and ">"
   brackets) identifying one recipient.  If accepted, the SMTP server
   returns a 250 OK reply and stores the forward-path.  If the recipient
   is known not to be a deliverable address, the SMTP server returns a
   550 reply, typically with a string such as "no such user - " and the
   mailbox name (other circumstances and reply codes are possible).
   This step of the procedure can be repeated any number of times.

However, in practice, some servers do not perform recipient
   verification until after the message text is received.  These servers
   SHOULD treat a failure for one or more recipients as a "subsequent
   failure" and return a mail message as discussed in section 6.  Using
   a "550 mailbox not found" (or equivalent) reply code after the data
   are accepted makes it difficult or impossible for the client to
   determine which recipients failed.

(http://ftp.rfc-editor.org/in-notes/rfc2821.txt)

mail.msu.edu is not doing this.  if the client is using pipelineing, it
should accept as long as one RCPT TO address was valid.

the simplest fix would be:

(http://www.exim.org/exim-html-4.30/doc/html/FAQ_4.html)

Q0416:
<http://www.exim.org/exim-html-4.30/doc/html/FAQ.html#TOC155>  What is
quickest way to set up Exim so any message sent to a non-existing user
would bounce back with a different message, based on the name of
non-existing user?

A0416:  Place this router last, so that it catches any local addresses
that are not otherwise handled:

   non_exist:
     driver = accept
     transport = non_exist_reply
     no_verify

Then add the following transport to the transports section:

   non_exist_reply:
     driver = autoreply
     user = exim
     to = $sender_address
     subject = User does not exist
     text = You sent mail to $local_part. That's not a valid user here. \


            The subject was: $subject.


jason

Ed Symanzik wrote:

> /home/zik> telnet mail.msu.edu smtp
> Trying 35.9.75.123...
> Connected to mail.msu.edu.
> Escape character is '^]'.
> 220 sys23.mail.msu.edu ESMTP Exim 4.24 Wed, 24 Mar 2004 14:12:34 -0500
> ehlo foo
> 250-sys23.mail.msu.edu Hello hardy.cl.msu.edu [35.8.3.246]
> 250-SIZE 52428800
> 250-PIPELINING
> 250-AUTH PLAIN LOGIN
> 250-STARTTLS
> 250 HELP
> mail from: [log in to unmask]
> 250 OK
> rcpt to: [log in to unmask]
> 550 unknown user
> rcpt to: [log in to unmask]
> 550 unknown user
> rcpt to: [log in to unmask],[log in to unmask]
> 501 [log in to unmask],[log in to unmask]: malformed address: ,[log in to unmask] may not
> follow [log in to unmask]
> rcpt to: [log in to unmask]
> 250 Accepted
> data
> 354 Enter message, ending with "." on a line by itself
> Subject: foo
>
> test
> .
> 250 OK id=1B6DrC-0004kF-96
> quit
> 221 sys23.mail.msu.edu closing connection
> Connection closed by foreign host.
>
>
>
> This test came through ok, even though there were previous lines with
> unknown users.  I did a similar test with Mozilla and it refuses to
> send the message.  Looks to me like a client feature.  Not terribly
> friendly though that it won't tell you which address failed.
>
> Note, this is one method of finding which address is bad.
>
> I believe the difference in behavior here is that Pilot would accept
> mail for accounts that had not yet been activated.
>
> --
> Ed Symanzik
> MSU Mail Team
> [log in to unmask]
>