Hallo,
Adressen lassen sich sortieren. Man kann sie z. B. nach Länge oder Anfangsbuchstaben sortieren - nur wirklich interessant sind andere Eigenschafen: Jede E-Mail-Adresse setzt sich auch einem "user"+@+"domain" zusammen. Über das DNS können Domänen u. A. zu einer IP-Adresse aufgelöst werden, aber auch zu einem sog. MX-Eintrag.
Sortiere also Deine Empfänger nach den im MX (Mail Exchange) angegebenen Hostnamen. Dies bringt einige Vorteile. Das SMT-Protokoll ist in der Lage mehrere (laut Standard mindestens 100) Empfänger innerhalb einer Transaktion zu akzeptieren. Dabei kommen natürlich nur diejenigen Empfänger in Frage, die von einem Host auch tatsächlich "betreut" werden (daher also die Sortierung ;). Dabei macht ein sortiertes Abspeichern in einer Datenbank _gar keinen_ Sinn, denn Domains können umziehen. Es ist also absolut erforderlich _jedesmal_ vorm Versenden erneut zu sortieren.
Der daraus gewonnene Vorteil ist enorm, denn das Sendmailprogramm (wenn es denn gut geschrieben ist) kann nun mehrere Empfänger mit einer einzigen Verbindung und nur einmaligem Transport des Nachrichtentextes gleichzeitig abarbeiten.
Die MX-Einträge holst Du Dir auf einem *NIX-System mit der PHP-Funktion getmxrr(). Wie Bio völlig zurecht anmerkte, lassen sich mehrere Empfänger zusammenfassen. Dabei ist hier der Header "BCC" bei einem Newsletter erhelblich interessanter, als Dein Vorschlag "CC".
Einen Prozess gegen Absturtz oder Systemsignale abzusichern kann recht aufwändig sein. Dort ist es schlecht Dir pauschal etwas anzuraten. Da wäre der gesamte Quellcode zu beäugen.
Gruß aus Berlin!
eddi