On 25 October 2001, Billy Harvey said: > The syslog shows: > > Oct 24 21:57:15 maestro courieresmtpd: > error,relay=::ffff:127.0.0.1,ident="list",msg="554 Syntax error - your > mail software violates RFC 821.",cmd: RCPT TO: > > The Courier FAQ says this error is usually due to the sending software > not wrapping the RCPT TO address in <> 's.
Wow, so much for "Be liberal in what you accept, conservative in what you emit." ;-) > Is that the case in Mailman? Is that an easy fix on my end and if so > any pointer to what I should change? Is it something else? The best way to find out is to use packet-tracing software like Ethereal. Ethereal is amazingly cool; just run it for a few seconds while Mailman is passing a message to your MTA, find a packet from that connection, and you can reconstruct the whole SMTP session. Question answered. The second-best way is: Use the Source, Luke. A quick look at Mailman/Handlers/SMTPDirect.py reveals that Mailman uses Python's smtplib module. Specifically, it creates an SMTP object and calls sendmail() on it. No wait, it uses Mailman's "custom" version of smtplib. So let's take a look in Mailman/pythonlib/smtplib.py for the answer. Here's a snippet from the SMTP.sendmail() method: for each in to_addrs: (code,resp)=self.rcpt(each, rcpt_options) if (code <> 250) and (code <> 251): senderrs[each]=(code,resp) So what we're really interested in is the SMTP.rcpt() method; here's the relevant line from that: self.putcmd("rcpt","TO:%s%s" % (quoteaddr(recip),optionlist)) OK, now we need to look at quoteaddr(). This function calls rfc822.parseaddr() to extracts the bare address from a possibly-hairy RFC-822 mailbox, eg. "John Doe <john (not jane) @ example . net>" -> "[EMAIL PROTECTED]" and then wraps the bare address in "<..>". (Yes, that is a legal mailbox according to RFC 822.) The only time quoteaddr() doesn't do that is if it can't parse the address, *or* if the address is an empty string. So the answer is: yes, Mailman does emit correct RCPT TO commands, but it might screw up in pathological cases. Use Ethereal (or a similar tool) to see what's going wrong between Mailman and Courier. Greg -- Greg Ward - software developer [EMAIL PROTECTED] MEMS Exchange http://www.mems-exchange.org ------------------------------------------------------ Mailman-Users maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users