Position actuelle: Accueil> Derniers articles> Utilisez Array_Chunk pour diviser les tableaux pour l'envoi par lots

Utilisez Array_Chunk pour diviser les tableaux pour l'envoi par lots

M66 2025-04-27

Dans la programmation PHP, l'envoi de courriels par lots est une exigence commune. Surtout lorsque nous devons envoyer des e-mails à un grand nombre d'utilisateurs, il peut provoquer des goulots d'étranglement des performances ou dépasser les restrictions du fournisseur de services de messagerie en raison de l'envoi de trop de courriels. Afin de gérer efficacement les tâches d'envoi des e-mails, nous pouvons utiliser la fonction Array_Chunk () en PHP pour diviser le tableau utilisateur en plusieurs petits tableaux et envoyer un lot par lots par lot. Cela améliore les performances du code et évite les problèmes causés par l'envoi d'un grand nombre d'e-mails à la fois.

Cet article montrera comment utiliser array_chunk () pour diviser un tableau et envoyer le courrier en lots en combinaison avec la fonction mail () .

1. Idées de base

Tout d'abord, nous avons besoin d'un tableau contenant toutes les informations du destinataire. Supposons que nous ayons déjà un tableau contenant toutes les adresses e-mail. Nous pouvons ensuite utiliser array_chunk () pour diviser ce tableau en plusieurs petits tableaux, chaque petite taille de tableau étant la taille du lot que nous avons spécifiée.

Par exemple, si nous avons un tableau de 1000 boîtes aux lettres et envoyons 100 boîtes aux lettres par lots, array_chunk () divisera le tableau d'origine en 10 sous-réseaux contenant 100 boîtes aux lettres. Nous pouvons parcourir chaque sous-réseau et envoyer des e-mails par lots par lot.

2. Utilisez array_chunk () pour diviser le tableau

Supposons d'abord que nous ayons un tableau avec plusieurs adresses e-mail:

 $emails = [
    "user1@example.com", "user2@example.com", "user3@example.com", 
    "user4@example.com", "user5@example.com", "user6@example.com",
    // Autres adresses e-mail...
];

Ensuite, nous utilisons la fonction array_chunk () pour la diviser en 2 boîtes aux lettres par lot:

 $chunks = array_chunk($emails, 2);

Après avoir exécuté le code ci-dessus, $ Chunks deviendra un tableau bidimensionnel, chaque sous-réseau contient deux adresses e-mail.

 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
        )
    // Autres sous-réseaux...
)

3. Envoyez des e-mails par lots

Maintenant que nous avons divisé toutes les adresses e-mail en plusieurs lots, nous pouvons utiliser la fonction Mail () pour envoyer des e-mails par lots par lot. Nous allons parcourir chaque lot et envoyer du courrier pour chaque lot.

 $subject = "Avis important";
$message = "Ceci est notre dernière notification,Veuillez afficher le contenu connexe。";
$headers = "From: no-reply@m66.net";

foreach ($chunks as $chunk) {
    // Envoyer des e-mails par lots à chaque fois
    foreach ($chunk as $email) {
        if (mail($email, $subject, $message, $headers)) {
            echo "E-mail envoyé à: $email<br>";
        } else {
            echo "Envoi par e-mail a échoué: $email<br>";
        }
    }
}

Le code ci-dessus définit d'abord le sujet, le contenu et les informations d'en-tête de l'e-mail, puis utilise une boucle de foreach imbriquée pour envoyer des e-mails aux adresses e-mail dans chaque sous-détail une par une.

4. Contrôlez la taille de l'envoi par lots

En contrôlant le deuxième paramètre de Array_Chunk () , nous pouvons contrôler de manière flexible la taille du lot de chaque envoi. Par exemple, si vous devez envoyer 50 courriers par lot, définissez simplement le deuxième paramètre à 50:

 $chunks = array_chunk($emails, 50);

De cette façon, chaque lot contiendra jusqu'à 50 adresses e-mail. Selon les limites de votre serveur et votre service de diffusion, vous pouvez ajuster cette valeur pour équilibrer les performances et les ressources disponibles.

5. Conclusion

En utilisant la fonction Array_Chunk () , nous pouvons facilement diviser un tableau avec un grand nombre d'adresses de boîte aux lettres en plusieurs sous-réseaux plus petits et envoyer un lot de courriels par lot. Cette méthode vous aide non seulement à éviter les goulets d'étranglement des performances causés par l'envoi d'un grand nombre d'e-mails en même temps, mais vous permet également de mieux contrôler la fréquence des e-mails, augmentant ainsi le taux de réussite des e-mails.

Bien sûr, plus de facteurs peuvent devoir être pris en considération dans une utilisation réelle, tels que la configuration SMTP, la sécurité du contenu des e-mails et la protection de la vie privée des destinataires. Si vous devez optimiser davantage l'efficacité de l'envoi des e-mails, vous pouvez envisager d'utiliser des services de messagerie électronique professionnels tels que SendGrid, Mailgun, etc., qui offrent des fonctionnalités plus avancées, telles que la livraison de courrier par lots, le suivi du courrier et l'analyse.