For this I would make sure you do not send all e-mail at once or you'd get the problem that happened in the hotscript mailing list. Send multiple e-mails at different times per day on different days. I would reccomend getting dual xeons for this job as millions of e-mails is quite a bit. You may want to get 2 servers and send 1/2 from one and the other 1/2 from the other.
I can speak from personal experience. One of my clients is a marketing company they honestly have 0 reports in the past 6months and prior 1 reports in the past 1 year. So their opt-in (for those who would of said *spam* cough.....).
Anyrate I recomended the client to install FreeBSD on a Pentium IIII 3.0Ghz and 2GB of ram and 800FSB motherboard. Also recomended the client to purchase some SCSI devices with some GOOD IO rates 10,000 rpm +.
The problem with mailing is the hard drive not being able to keep up with the server in most cases, hence why we installed some SCSI's. The second problem you will run into is SQL NOT being optimized properly. And depending on the OS its running on (Hint: FreeBSD dont manage mySQL 4.0 very good). I would suggest 3.0 latest release. Or some major optimizing.
octech (great software for mass mailing) using php and sql.
1. optimize server (sql)
2. optimize your mailing program timeouts and various other options (mass sending limits).
3. Receive some helpfrom the program creators and tell them your goal.
4. Ask that mailing software qmail, sendmail, postfix would benefit you. (Client uses QMAIL)
Overall I think he sends around 10,000 emails per 60 seconds. Keep in mind he had some help outside of my managed services. He highered someone from the software creator side to install and optimize the program for mass mailing.
If you need some tips or pointers on who to contact for this, please let me know. I can reffer some people.