Postbote: mime::light

Beitrag lesen

die DB umfasst derzeit knapp 10000 kunden. ich lade also die emailadressen in eine liste und lasse sie in einer schleife abarbeiten.

foreach (@mails)
{
  my $msg = MIME::Lite->new 
  ( 
   To=>$_,
  );

  $msg->send;
}

Funzen wird das wohl.

Furzen ist wohl der richtige Ausdruck. Bei 10.000 Empfängern möchtest du nicht jede Mail einzeln senden, sondern die Empfänger en bloc angeben, damit das Mailsystem wenigstens die Chance hat, den Vorgang ein wenig abzukürzen.
Nur mal als Gedankenspiel: Stehen in der Liste 1000 Empfänger bei web.de, braucht die Mail nur einmal an web.de übertragen werden, nicht tausendmal, wie bei deinem Ansatz.

Benutze den Bcc-Kopf, probiere es erstmal mit 100 Mails à 100 Adressen und steigere danach langsam, bis Perl, sendmail oder ein empfangender Server dir das vor die Füße kotzt. Sortiere die Adressen unbedingt nach Empfängerdomain vor, besser noch nach MX, also nach die Mails für die Domain verarbeitendem Server. Zwischen den Aufrufen keine Pause einlegen, das bringt nichts.