I need a developer that is able to build a custom MTA (mail transfer agent) for me.
Our company sends permission based email and we currently pay an third party software company for software however we'd like to create our own custom MTA to eliminate this extra monthly costs for leasing software.
For this project I'd like bids from only parties that have experience in managing MTA's and would therefore know the requirements to building a custom MTA and building it so that the MTA runs fast and smooth.
We already have our own software that runs on the front end that will be managing our email lists and inserting the email messages into the MTA, however in order to have an MTA to do what we need it will need to be custom.
Also, we would need to be able to have multiple instances of the MTA running at once on a server. This is because for our setup we will have multiple instances of our front-end software running and each front-end instance will need to point to its own MTA.
Finally we will need this custom MTA to be made very use friendly for us to be able to load it ourselves on a server and edit the configuration file to make it behave as we need it to, which is explained below. This would involve either making it into an executable to self install or it could simply be that we need to create a few directories on the server, give each directory certain permissions and then put the MTA script into a certain folder. Either of these ways would be simple enough for us.
Essentially we would need to be able to have a configuration file for the MTA that we can edit to specify a variety of settings to tell the MTA how to behave. We would need to be able to make changes to these settings at any time after the MTA is in use as well.
Here is what settings we need to be able to customize to tell our custom MTA how to behave:
1) We need to be able to specify how many connections to use to send mail. Any MTA will open a certain number of connections to send out email. We want to able to specify what this number should be, whether that would be 10 connections or 400 connections. We understand there are certain limitations for this based on server hardware. This is why we need someone experienced who can make this perform well enough that 400 connections at a time is possible on reasonable server hardware (like 2gb ram ideally).
2) We need to be able to enter in a list of IP addresses and corresponding hostnames to use to send the email from. This may be 5 IP addresses or 50 or more IP addresses. Each IP address will have a hostname. So for example we would list:
18.104.22.168 [url removed, login to view]
So if this IP address and hostname was listed in the configuration file then the MTA when using that IP/hostname would send the email from that combination so that the email header showed that IP address and that hostname as where the email was coming from.
3) We need to be able to specify how the MTA should use the IP/hostnames. The first option would be to specify to send X number of emails from an IP/hostname then move on to the next and so on rotating through each IP/hostname in the file then looping back to the top of the list once done. The second option would be to specify to use an IP for X hours before rotating to the next. So in this case if we specified 3 hours then every 3 hours the system would automatically rotate to the next IP/hostname in the list and then loop back to the top of the list once done.
The programming language that this should be written in is flexible and up to you. We are unsure at this point whether we should write this for Windows or Linux as we have experience in using both types of servers. Naturally Windows is easier for us to use however we know that Linux can perform better. Your suggestions as to what OS to develop this for is welcome however we'd like your suggestions on this so we can decide on this before development would begin.