I have an SMTP server that mostly just accepts mail (sends very little email out), and I want to write Perl/PHP scripts (not C code!) to control every step of a remote connection. At each step, I want the option to tempfail/permfail the email or even drop the connection entirely. Examples:
Even before the sender says "HELO", I want the ability to return stuff like: 550 You're on an RBL. Go away. 450 Your IP address is already sending me mail. Try again later. [drop the connection silently w/ no message; prevents DOS attacks] [do nothing at all; let the sender go to the next step] After the sender says HELO, I might do: 550 Your HELO is *my* server? I don't think so! 450 HELO doesn't match domain, but if you connect twice more, I'll let you in 250 Hello, [ip address], how's it going? [in the 2nd case, I'd keep track of the senders HELO/IP combination somewhere, so I could ok them if they connected twice more] Same sort of thing after I get "MAIL FROM" (maybe I don't like certain senders) and each "RCPT TO" (I may graylist certain recipient-sender combinations). Finally, I want the ability to call an arbitrary Perl/PHP script after the DATA is sent (maybe run it through spamassassin) Basically, I'm looking for an SMTP server w/ lots of "hooks"-- something that works well out of the box, but something I can also tweak easily if I want. I don't like the options I have so far: 1. Use sendmail and milter (requires coding in C, ugly macros, and hard to understand) 2. Write my own SMTP server (don't want to re-invent the wheel, even though the RFC doesn't seem THAT bad) What's the best SMTP server for my purposes? And, yes, I realize some of my examples above are lousy-- I'm looking for a solid foundation SMTP server to experiment with, not planning to use on a production system. -- We're just a Bunch Of Regular Guys, a collective group that's trying to understand and assimilate technology. We feel that resistance to new ideas and technology is unwise and ultimately futile. -- ## List details at http://www.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://www.exim.org/eximwiki/
