we need a high performance SMTP proxy / Gateway able to check incoming smtp connections on some certain rules and passing the emails to the internal imail smtp engine. it will be used for anti spam checking.
we need the following:
- smtp proxy/gateway written in C or any other high performance language
- compiled for windows 2000 and windows 2003 and windws nt 4.0 systems
- later compiled for linux / unix and sun solaris systems
- must be able to handle > 5000 smtp connections per hour
- should not consume much memory and processor
- should run as service on a defined port (ini/txt file to define the listening port)
- should check incoming smtp connections on certain rules
- should relay emails to a second smtp server from imail ([login to view URL])
- should only relay emails for internal domains which will be defined in a txt file
- should be flexible for enhancements in the future (antispam checking)
- must be able to handle all smtp statements as defined in rfc smtp protocoll definitions
- should do logging into a txt file. information to be logged: ip and domain connecting, date and time of connection, senders email, destination users email and domain, state of connection (successfull or blocked), information from whitelists (see below)
for the first step, the smtp gateway should check the following:
- get the connecting IP address
- resolve the IP address to a real domain name
(if the ip cant be resolved because of a missing mx or a record in dns, the connection is refused)
- check the resolved domain name for some strings (defined in a txt file):
"adsl", "dialup", "234-" "162-" or any other ip addresses in domain name which identify the connection as a dialup/dynamic connection
- if one of the checking is positiv, the connection will be refused with 550 error --> the error message passed to outside smtp server can be defined in txt config file
- senders and domains in a txt file called "whitelist" will not be checked. they will be passed directly to the second smtp server
- senders and domains in a txt blacklist will not be checked
connection is refused immediatley. 550 error message can be define in a txt config file
you will deliver us the running service and the source code
installation programm
config txt files
documentation how this config files / logging etc. work
you dont have any copyright on this --> it will be passed to us