J'ai un système qui envoie beaucoup de rapports de courriels (environ 500+ emails par jour). Je ne suis pas un spammeur :) Ce n'est pas vraiment une grande quantité d'e-mails, mais ils sont envoyés en boucle et j'ai souvent cette erreur "PHP Attention: mail(): Impossible d'exécuter le programme de distribution de courrier". Je sais qu'il existe un paquet PEAR :: Mail_Queue pour ce problème. Mais pouvez-vous s'il vous plaît laissez-moi savoir si ce paquet est vraiment utile, ou dois-je chercher quelque chose d'autre. Merci beaucoupenvoyer de grandes quantités de courrier électronique en boucle
Répondre
Vous devez utiliser sleep() entre les mails, cela résout cela.
Une alternative pourrait également être d'envoyer des mails directement via un serveur SMTP. Cela vous évite l'aller-retour de PHP appelant sendmail (ou quel que soit le MTA utilisé) "à travers le shell" afin de livrer le courrier. Par exemple, le Zeta Mail component vous permet d'envoyer des mails directement via un serveur SMTP sans avoir besoin d'une extension spéciale pour cela.
"PHP Warning: mail(): Impossible d'exécuter le programme de livraison de courrier"
... signifie exactement ce qu'il dit sur l'étain. PHP remettra simplement l'email à un programme externe sur un système Linux/Unix/POSIX (tel que défini par sendmail_path dans php.ini). Et dans certains cas, cela renvoie une erreur. Ce n'est pas une faute dans le code PHP.
Sauf si vous avez un MTA vraiment mal configuré, le problème ne sera pas résolu en utilisant une connexion SMTP à la place.
Vous devez consulter les journaux de votre agent MTA pour savoir pourquoi il n'a pas envoyé le courrier ou encapsulé l'exécutable de messagerie dans un script de journalisation.
Vous pouvez utiliser PEAR's Mail_Queue package pour envoyer directement des messages via un serveur SMTP. Cela fonctionnera également en arrière-plan et ne retardera ni n'augmentera le temps d'exécution de votre script. Un autre avantage de l'utilisation du paquet Mail_Queue est que vous pouvez récupérer l'identifiant esmtp de chaque mail envoyé à des fins de journalisation - je ne sais pas si cela est possible avec le composant Zeta Mail ou tout autre.
J'ai développé un certain nombre de solutions destinées au public, mais aussi à l'intranet, qui utilisent ce composant et qui n'ont rencontré aucun problème majeur.
- 1. Comment stocker de grandes quantités de corps de message électronique
- 2. PHP envoyer un courrier électronique avec des données de boucle
- 3. Envoyer un courrier électronique asynchrone
- 4. fonction de courrier électronique
- 5. Format grandes quantités
- 6. Comment envoyer mon courrier électronique dans Hotmail?
- 7. Comment envoyer un courrier électronique asynchrone
- 8. Comment envoyer un courrier électronique à 4
- 9. DTS Envoyer une tâche de courrier électronique envoie deux fois le courrier électronique
- 10. manipulation de grandes quantités de télémétrie
- 11. XPages envoyer un document par courrier électronique
- 12. Java traitant de grandes quantités de données
- 13. CGContextDrawPDFPage occupant de grandes quantités de mémoire
- 14. l'envoi de courrier électronique en utilisant PHP
- 15. Enregistrement de grandes quantités d'entrées utilisateur dynamiques
- 16. GAE Datastore grandes quantités de données
- 17. Windows scripting à envoyer par courrier électronique en utilisant TLS
- 18. Comment envoyer un courrier électronique en Java GWT
- 19. Envoyer un fichier .doc en pièce jointe au courrier électronique
- 20. Envoyer un fichier PDF en pièce jointe par courrier électronique
- 21. Comment envoyer un courrier électronique à Outlook 2010 en C#?
- 22. iPhone stockant de grandes quantités d'images
- 23. Comment définir de grandes quantités de variables correctement en PHP?
- 24. Manipulation de grandes quantités de données d'image en Python
- 25. Stocker de grandes quantités de texte en mémoire
- 26. Mise en cache de grandes quantités de données
- 27. envoyer la demande de calendrier par courrier électronique
- 28. Moodle - Forums ne pas envoyer de notifications par courrier électronique
- 29. Envoi de grandes quantités de données avec NSFileHandle
- 30. Envoi efficace de grandes quantités de données avec ServletOutputStream
Merci pour votre réponse. Mais j'ai peur, ça va augmenter le temps d'exécution du script, n'est-ce pas? – alagar
Heya mate, il va ajouter un peu de temps à votre exécution MAIS il ne comptera pas vers le temps d'exécution maximale. Donc, pour 500 mails une fois par jour, ou même 5000, cela n'aurait pas d'importance. –