Basically I split everything up into 4 messages:
- Text people
- AOL people, they get the text message but with the links/mailto's converted into HTML. This seems to give them clickable links which is nice.
- HTML
- Unknown people get MIME - use MIME::Lite to give them a multipart/alternative message.
The text message tends to be pretty small, it's just a short bit of text to try to encourage somebody to go to a link. We work out if somebody is Text/HTML by embedding an invisible pixel in the email and giving them a couple of mailings to load it.
If you are sending out hundreds of thousands of messages there are serious network/server issues. When we first started we killed out network as our firewall didn't have enough performance to handle a large amount of small connections.
There is also the problem that 500,000 emails tends to be about 8 gig. This tends to be a very I/O bound operation and takes quite a while.
How we handle things is we run postfix as our mail server. We first spool everything (without sending a single message) then let it go. We then throttle it so we're sending 40,000 or so an hour without killing our T1.
There's also issues with web server load. It killed our client's webserver when it got that much extra traffic going there. There's also the problem about handling unsubscribes etc.
And no, I don't spend all day sending spam :) |