I have a list of things I want from an MTA. Today, as I see it, none will do all I want, so I have to compromise. My question is about the qmail filtering capabilities, I think I'm up to date on the rest. What I would want as an MTA would be - simple configuration for simple cases (I like qmail configuration). Qmail is obviously OK there AFAIAC. - user-controllable aliases, like in qmail, but optionally in procmail format (I think there's a patch somewhere that makes qmail do that, but I'm not sure) I believe Qmail is OK there. - sendmail-style and qmail-style remote delivery, choice triggered by admin configuration, message size, number of recipients, or maybe even user invocation style. Failing that, "normal" bandwith-conservative delivery. Will qmail one day support emitting multiple-RCPT mails? Just sorting per domain would be nice, no need to do MX lookups ... - per-domain, per-user, and per-alias incoming mail filtering on remote IP, MAIL FROM, RCPT TO, which would reject before DATA (hmmm... size and things like that in an ESMTP session would probably be good too, though I wouldn't have the use for it myself) Are there patches for qmail to do this? Emphasis on per-user and per-alias ... - per-domain, per-user, and per-alias incoming mail filtering on message DATA, which would reject after the <CRLF>.<CRLF> (Does this happen often enough for one to be able to expect X.Random MTA to handle it correctly? There might be a problem in that the only permitted error codes are for transaction error and storage exceeded, but well. I can uphold that storage space on my system is 0 for spam :-)) If multiple RCPT, then reject after DATA if all the RCPTs reject in the same way! Are there patches for qmail to do this? Emphasis on per-user and per-alias ... Are ther other mail servers out there which would do what I want? In fact, for incoming mail, I would be happy with: a frontend which takes the HELO and MAIL FROM, sets them in environment variables along with originating IP, and for each RCPT TO opens a pipe to the delivery command. Said delivery command should exit without opening stdin if the origination info is not to its liking, putting the reason on stdout. I realize that there are potentially a lot of problems with implementing this exactly as stated, that's not what I want. For example, loops between two servers using this would be really devastating ... I can think of workarounds to most of the problems I can think of, though. But I really want something that acts like this. User config files that can filter and deny during the original SMTP session, it would be just marvelous. A dream? A pipe dream? Anyone been thinking of this in qmail? Anyone been thinking of this anywhere else?
