While setting up my ecommerce site, I've been coming across a major problem. How can I automatically link up the database of my customers with the email marketing software? it seems like export/importing lists is a waste of time, but is also the only way to go it appears.
Putting a mail solution on your own server puts a big bullseye on your mail server. I personally would shy away from even thinking about this and utilize a service. The only way I'd consider an in house solution is if I had a crack server admin on board that was keeping the server updated and could hand random attacks and hacks.
I run my own email on my own servers. Started in ~2000 with about 10K emails. Now I manage about 25MM email a month. It is possible to put together a solid solution using primarily free software.
If you mind Junk Mail Responders/Feedback Loops and take instructions from the ISPs (e.g. 'back off') you'll be fine. You cannot SPAM. You need solid open rates and you need to test each email for deliverability (we use EmailReach).
There is a lot to learn. Do it wrong and you're dead. It is not so easy to setup and maintain if you've never done it. I manage around 40 servers in a co-lo, so it is not so difficult. SendMail works okay until you reach about 15MM emails a month. You can use Boogie Tools for bounce and feedback look management. Then it is probably time to move to Port25 PowerMTA. This is what 6 out of 10 ESPs use.
So in my mind in-house vs outsourced ESP is a question of scale. At > 10MM emails a month you'll save money if you do it in-house -- that is, if you already have solid sys admins, programmers and DBAs. OEMPro makes a front-end for Port25 that will get you quickly to best practices. Bootstap it and you'll be setup for < $500. Going industrial strength will cost you > $15K out of the gates.
If you look at the Internet Retailer 500 or 1000 group you'll find that > 40% send mail using in-house systems. Again, a function of sale and technical ability.
Oh, you'll also want to be Sender Scored at some point. Not inexpensive at high volumes. You should use subdomains for sending different types of communication so that you can measure feedback on each IP address. Unless you are sending steady volume it is difficult to keep IPs warmed-up. Steady velocity is always better than spikes.