Envoyer des mails en masse!

Envoyer des mails en masse! - PHP - Programmation

Marsh Posté le 30-09-2006 à 17:35:41    

Bonjour,
 
Je possède un site dont le nombre d'inscrit est de 1500 environ. Certains sont inscrits à la newsletter donc je leur envoi de temps en temps des mails.
 
Le problème est que j'envoi ces mails avec la fonction WHILE et le site est innaccessible pendant tout le temps d'envoi. N'existerait-il pas un script tout simple pour l'envoi par paquet?
 
Pour infos, voici les actions de mon script actuel :
 
1) Connexion et requête à MYSQL pour récupérer les adresse
2) Création des variables $sujet, $message etc...
3) Envoi des mails avec WHILE
4) Fermeture de la connexion MYSQL
 
Merci d'avance!

Reply

Marsh Posté le 30-09-2006 à 17:35:41   

Reply

Marsh Posté le 30-09-2006 à 18:30:05    

T'as qu'à faire ça à 3h30 du mat :whistle:
 
Si y'a des scripts pour enoyer par paquet, j'ai déjà u mais je ne saurais te donner un lien...
 
Je rajouterais que t'as quand même de la chance que le serveur web se mette pas en timeout et t'envoi tout ;)

Reply

Marsh Posté le 30-09-2006 à 18:36:50    

Bah un deuxieme serveur chargé de l'envoie des mails ^^

Reply

Marsh Posté le 30-09-2006 à 18:44:13    

Oui mais je n'ai pas de dédié!
 
J'avais entendu parlé d'une fonction appelée sleep() en php, est-ce qu'elle me serait utile?

Reply

Marsh Posté le 30-09-2006 à 19:14:47    

Citation :

sleep -- Arrête l'exécution durant quelques secondes


Pas sûr que ca libére le serveur pendant le temps où l'exécution est stoppée.
 
Mais sinon ya la solution du traitement par lots en utilisant la fonction header(). En gros tu envois x mail, un cou de header() pour forcer le rechargement de la page, envois de x mail, etc...

Reply

Marsh Posté le 30-09-2006 à 20:04:48    

Apparamment ceci fonctionnement :
 
Création de 3 fonctions :
N°1 = Requete (avec LIMIT)
N°2 = Connexion à MYSQL
N°3 = Envoi des mails
 
Lorsque le formulaire est soumis j'enregistre les infos dans des variables (global) puis appel la fonction N°1 qui elle appel ensuite la fonction N°2 et la N°3. Lorsque les envoi sont finis je ferme la connexion à mysql et je fais un sleep() puis rappel la N°1!!!
 
Je viens d'essayer et ça marche impec, le site est accessible.
 
Merci à vous tous de m'avoir aidé.

Reply

Marsh Posté le 30-09-2006 à 23:01:53    

t'as qu'a faire un simple script crontab et c'est tout, pas la peine de chercher midi à 14H. Je comprends pas cette histoire de site inaccessible, et je n'y vois aucune raison.

Reply

Marsh Posté le 01-10-2006 à 01:48:16    

Taz a écrit :

t'as qu'a faire un simple script crontab et c'est tout, pas la peine de chercher midi à 14H. Je comprends pas cette histoire de site inaccessible, et je n'y vois aucune raison.


Serveur chargé au tacquet surtout sur un mutualisé où la charge doit être limitée :) S'il atteint son quota de BP et charge il se passe plus rien tant que le script rend pas la main pour qu'une autre connexion soit acceptée surement :??:

Reply

Marsh Posté le 01-10-2006 à 10:25:19    

Tu fais ca en local.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed