Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Chunk, um Arrays für das Batch -Mailing zu teilen

Verwenden Sie Array_Chunk, um Arrays für das Batch -Mailing zu teilen

M66 2025-04-27

Bei der PHP -Programmierung ist das Senden von E -Mails in Stapeln eine häufigste Anforderung. Insbesondere wenn wir E -Mails an eine große Anzahl von Benutzern senden müssen, kann dies zu Leistungsengpassungen führen oder die Beschränkungen des E -Mail -Dienstanbieters aufgrund des Sendens zu viele E -Mails übertreffen. Um die Sendungsaufgaben von E -Mails effektiv zu verwalten, können wir die Funktion von Array_Chunk () in PHP verwenden, um das Benutzerarray in mehrere kleine Arrays aufzuteilen und E -Mails per Batch zu senden. Dies verbessert die Leistung des Codes und vermeidet die Probleme, die durch das Senden einer großen Anzahl von E -Mails gleichzeitig verursacht werden.

In diesem Artikel wird angezeigt, wie Sie Array_Chunk () verwenden, um ein Array zu teilen und E -Mails in Kombination mit der E -Mail () -Funktion zu senden.

1. grundlegende Ideen

Zunächst brauchen wir ein Array, das alle Empfängerinformationen enthält. Angenommen, wir haben bereits ein Array mit allen E -Mail -Adressen. Wir können dann Array_Chunk () verwenden, um dieses Array in mehrere kleine Arrays aufzuteilen, wobei jede kleine Array -Größe die von uns angegebene Chargengröße ist.

Wenn wir beispielsweise über 1000 Postfächer verfügen und 100 Postfächer in Stapeln senden, teilen Array_Chunk () das Original -Array in 10 Subtarrays mit 100 Postfächern auf. Wir können jedes Subtarray durch Itererieren und E -Mails per Batch senden.

2. Verwenden Sie Array_Chunk () , um das Array zu teilen

Angenommen, wir haben ein Array mit mehreren E -Mail -Adressen:

 $emails = [
    "user1@example.com", "user2@example.com", "user3@example.com", 
    "user4@example.com", "user5@example.com", "user6@example.com",
    // Andere E -Mail -Adressen...
];

Als nächstes verwenden wir die Funktion array_chunk (), um sie in 2 Postfächer pro Stapel aufzuteilen:

 $chunks = array_chunk($emails, 2);

Nach Ausführung des obigen Code wird $ Chunks zu einem zweidimensionalen Array. Jedes Subtarray enthält zwei E-Mail-Adressen.

 Array
(
    [0] => Array
        (
            [0] => user1@example.com
            [1] => user2@example.com
        )

    [1] => Array
        (
            [0] => user3@example.com
            [1] => user4@example.com
        )

    [2] => Array
        (
            [0] => user5@example.com
            [1] => user6@example.com
        )
    // Andere Subtarrays...
)

3. Senden Sie E -Mails in Chargen

Nachdem wir alle E -Mail -Adressen in mehrere Stapel geteilt haben, können wir die Funktion "Mail ()) verwenden, um die E -Mail -Stapel per Batch zu senden. Wir werden jede Stapel durchlaufen und E -Mails für jede Stapel senden.

 $subject = "Wichtige Bekanntmachung";
$message = "Dies ist unsere neueste Benachrichtigung,Bitte sehen Sie den verwandten Inhalt an。";
$headers = "From: no-reply@m66.net";

foreach ($chunks as $chunk) {
    // Senden Sie jedes Mal E -Mails in Chargen
    foreach ($chunk as $email) {
        if (mail($email, $subject, $message, $headers)) {
            echo "E -Mail gesendet an: $email<br>";
        } else {
            echo "E -Mail -Senden fehlgeschlagen: $email<br>";
        }
    }
}

Der obige Code legt zunächst die Informationen, Inhalte und Headerinformationen der E -Mail fest und verwendet dann eine verschachtelte Foreach -Schleife, um E -Mails an die E -Mail -Adressen in jedem Subtarray einzeln zu senden.

4. steuern Sie die Größe des Stapelversendens

Durch Steuern des zweiten Parameters von Array_Chunk () können wir die Chargengröße jedes Sendens flexibel steuern. Wenn Sie beispielsweise 50 E -Mails pro Stapel senden müssen, legen Sie einfach den zweiten Parameter auf 50 fest:

 $chunks = array_chunk($emails, 50);

Auf diese Weise enthält jede Charge bis zu 50 E -Mail -Adressen. Abhängig von den Einschränkungen Ihres Server- und Mailingdienstes können Sie diesen Wert an die Ausgleich der Leistung und die verfügbaren Ressourcen anpassen.

5. Schlussfolgerung

Durch die Verwendung der Funktion array_chunk () können wir ein Array problemlos mit einer großen Anzahl von Mailbox -Adressen in mehrere kleinere Subtarrays aufteilen und E -Mails per Stapel senden. Diese Methode hilft Ihnen nicht nur, die Leistungs Engpässe zu vermeiden, die durch das Senden einer großen Anzahl von E -Mails gleichzeitig verursacht werden, sondern ermöglicht es Ihnen auch, die Häufigkeit von E -Mails besser zu steuern und so die Erfolgsrate von E -Mails zu erhöhen.

Natürlich müssen möglicherweise mehr Faktoren im tatsächlichen Gebrauch berücksichtigt werden, z. B. die SMTP -Konfiguration, die Sicherheit von E -Mail -Inhalten und den Schutz des Datenschutzes des Empfängers. Wenn Sie die Effektivität des E -Mail -Sendens weiter optimieren müssen, können Sie in Betracht ziehen, professionelle E -Mail -Sendungsdienste wie SendGrid, MailGun usw. zu verwenden, die fortgeschrittenere Funktionen wie Stapel -Mail -Zustellung, Postverfolgung und Analyse bieten.