Quel est exactement le problème ici ?
Votre volume n'est pas assez élevé pour justifier une division - je veux dire, même si vos 30 clients envoient 20.000 emails à la fois, ce n'est pas tant que ça - assez pour qu'un seul serveur puissant puisse le gérer (et je ne veux pas dire super puissant - il suffit de prendre quelques disques et de former un raid pour le spool de courrier).
Vous pouvez éventuellement opter pour des serveurs d'envoi multiples pour la mise en file d'attente. Un bloc d'adresses IP pour tous les serveurs de messagerie. Soit en utilisant quelque chose comme MS Exchange pour l'envoi (Exchange est excellent pour maintenir automatiquement des fermes de serveurs), soit en utilisant un mécanisme pour regrouper les courriels entre les serveurs (de sorte que ceux destinés au même domaine finissent sur le même serveur - simplement parce que le serveur peut alors envoyer plusieurs courriels en une seule connexion TCP).
Les fournisseurs d'accès multiples ne semblent pas être un problème. N'oubliez pas que nous parlons d'un trafic beaucoup trop important pour une ligne ADSL domestique bon marché. Une fois que vous avez atteint le niveau professionnel, vos serveurs sont transférés dans un centre de données approprié. Le temps de disponibilité est alors très élevé - pour un centre approprié (attention, certains semblent vraiment bon marché). Même si les choses tombent en panne un jour dans 2 ou 3 ans, il faut être VRAIMENT gros pour que le clustering ait un sens. Et même dans ce cas, les choses peuvent vraiment mal tourner (comme dans le cas de Wikipedia, qui a également été en panne pendant un certain temps récemment).
Le problème principal sera que vous aurez besoin de serveurs dédiés construits sur mesure pour gérer le flux de courrier. Le trafic réseau n'est pas si important. Mais le spool de courrier sera très dur pour vos disques. Si vous avez vraiment des pics de 600.000 emails, un RAID 10 de 4-8 disques à haute vitesse (ou : un RAID 5 de SSD's) semble être le meilleur pari. Comme tous les systèmes transactionnels de base de données, votre limite sera l'IO. J'opterais pour un système de fichiers formaté sur mesure avec une taille de nœud non standard (64k), permettant à chaque email d'être lu/écrit sur le nœud à peu près par garantie. Notez que ceci est basé sur l'utilisation de SPIKE - si les emails ne sont pas tous envoyés en même temps, vous pouvez vous en sortir avec beaucoup moins.
L'étape suivante serait un cluster de serveurs.