j'envoie tout bêtement un mail à tous mes adhérents dont la liste figure
dans une base mysql.
Aucune difficulté pour cet exercice, dans mon script PHP je fais un
SELECT mail FROM ma_table
puis une boucle pour envoyer le mail à chaque membre.
Trois questions de style cependant :
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a
partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux
faire plusieurs séries de SELECT avec un argument LIMIT ?
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30
secondes d'execution...y-a-t-il un risque que le programme mette plus de 30
secondes à envoyer les mails et s'arrête en cours de traitement ? comment
gérer ce problème ?
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur
avant la fin du traitement ou alors le script s'arrête ? (normalement le
script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure
de la boucle qui envoie le mail)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30 secondes d'execution...y-a-t-il un risque que le programme mette plus de 30 secondes à envoyer les mails et s'arrête en cours de traitement ? comment gérer ce problème ?
- positionner les limite plus hautes, - lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur avant la fin du traitement ou alors le script s'arrête ? (normalement le script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en s'enregistrant (voir liens sur le fonction exit())
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a
partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux
faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30
secondes d'execution...y-a-t-il un risque que le programme mette plus de 30
secondes à envoyer les mails et s'arrête en cours de traitement ? comment
gérer ce problème ?
- positionner les limite plus hautes,
- lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur
avant la fin du traitement ou alors le script s'arrête ? (normalement le
script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure
de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en
s'enregistrant (voir liens sur le fonction exit())
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30 secondes d'execution...y-a-t-il un risque que le programme mette plus de 30 secondes à envoyer les mails et s'arrête en cours de traitement ? comment gérer ce problème ?
- positionner les limite plus hautes, - lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur avant la fin du traitement ou alors le script s'arrête ? (normalement le script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en s'enregistrant (voir liens sur le fonction exit())
fbarbenoire
Marc wrote in message news:<3f34a7d6$0$16546$...
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30 secondes d'execution...y-a-t-il un risque que le programme mette plus de 30 secondes à envoyer les mails et s'arrête en cours de traitement ? comment gérer ce problème ?
- positionner les limite plus hautes, - lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur avant la fin du traitement ou alors le script s'arrête ? (normalement le script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en s'enregistrant (voir liens sur le fonction exit())
Bonjour,
j'ai le même type de problème que Yves: pouvoir envoyer des emails à des abonnés à une liste de diffusion sans que cela soit pénalisant d'un point de vue temps d'exécution.
En effet, sur le serveur où mon site est hébergé, je n'ai pas accès à crontab, donc impossible de lancer des tâches périodiques. Pas de possibilité non plus de paramètrer le temps maximal d'exécution d'un script. Le seul moyen que j'ai trouvé est d'exécuter le script d'envoi de mails à chaque fois que quelqu'un charge une page de mon site.
Pour palier tous ces inconvients, le solution suivante que j'ai trouvée sans un script "tout prêt" est-elle satisfaisante ? Cette solution consiste à appeler la fonction mail() de php une seul fois sans destinataire principal mais avec tous les emails des destinataires dans le champ "Bcc" de l'en-tête. Avantages: un seul appel à mail() de php, tous les mails sont cachés aux destinataires, c'est sendmail qui s'occupe d'envoyer tous les mails en décortiquant l'en-tête. Inconvénients: voir les questions ci-dessous.
Deux questions cependant me titillent: 1) est-ce que mail() rend la main à la fin de l'envoi de tous les messages ou une fois la requête transmise à sendmail ? 2) y a-t-il une limite dans le nombre d'emails dans Bcc ?
$to = ""; //destinataire vide $sujet = "sujet"; $msg = "message"; $entete = ...; //c'est pas du php ! $entete .= "Bcc: , , ..."; //derniere ligne sans n ! $ok = mail( $to, $sujet, $msg, $entete);
Merci pour vos remarques, suggestions.
Franck Barbenoire
Marc <__quinton__@free.fr> wrote in message news:<3f34a7d6$0$16546$626a54ce@news.free.fr>...
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a
partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux
faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30
secondes d'execution...y-a-t-il un risque que le programme mette plus de 30
secondes à envoyer les mails et s'arrête en cours de traitement ? comment
gérer ce problème ?
- positionner les limite plus hautes,
- lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur
avant la fin du traitement ou alors le script s'arrête ? (normalement le
script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure
de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en
s'enregistrant (voir liens sur le fonction exit())
Bonjour,
j'ai le même type de problème que Yves: pouvoir envoyer des emails à
des abonnés à une liste de diffusion sans que cela soit pénalisant
d'un point de vue temps d'exécution.
En effet, sur le serveur où mon site est hébergé, je n'ai pas accès à
crontab, donc impossible de lancer des tâches périodiques. Pas de
possibilité non plus de paramètrer le temps maximal d'exécution d'un
script. Le seul moyen que j'ai trouvé est d'exécuter le script d'envoi
de mails à chaque fois que quelqu'un charge une page de mon site.
Pour palier tous ces inconvients, le solution suivante que j'ai
trouvée sans un script "tout prêt" est-elle satisfaisante ?
Cette solution consiste à appeler la fonction mail() de php une seul
fois sans destinataire principal mais avec tous les emails des
destinataires dans le champ "Bcc" de l'en-tête. Avantages: un seul
appel à mail() de php, tous les mails sont cachés aux destinataires,
c'est sendmail qui s'occupe d'envoyer tous les mails en décortiquant
l'en-tête. Inconvénients: voir les questions ci-dessous.
Deux questions cependant me titillent:
1) est-ce que mail() rend la main à la fin de l'envoi de tous les
messages ou une fois la requête transmise à sendmail ?
2) y a-t-il une limite dans le nombre d'emails dans Bcc ?
$to = ""; //destinataire vide
$sujet = "sujet";
$msg = "message";
$entete = ...; //c'est pas du php !
$entete .= "Bcc: email1@domaine.com, email2@domaine2.net, ...";
//derniere ligne sans n !
$ok = mail( $to, $sujet, $msg, $entete);
- Est-ce la bonne méthode de charger en une fois toute la base mysql ? a partir de combien de lignes dans la table (10, 500, 10000 ?) vaut-il mieux faire plusieurs séries de SELECT avec un argument LIMIT ?
pas de limite, sinon de memoire et de temps d'execution.
- Si j'ai bien tout compris un script PHP s'arrête automatiquement après 30 secondes d'execution...y-a-t-il un risque que le programme mette plus de 30 secondes à envoyer les mails et s'arrête en cours de traitement ? comment gérer ce problème ?
- positionner les limite plus hautes, - lancer un script en tache de fond, via un exec, fork ou system. (php ... mon script.php)
- Une fois le script démarré je peux fermer la fenêtre de mon navigateur avant la fin du traitement ou alors le script s'arrête ? (normalement le script renvoi au navigateur l'adresse mail de l'adhérent au fur et à mesure de la boucle qui envoie le mail)
navigateur fermé = script arrété. Il y a possiblité de continuer en s'enregistrant (voir liens sur le fonction exit())
Bonjour,
j'ai le même type de problème que Yves: pouvoir envoyer des emails à des abonnés à une liste de diffusion sans que cela soit pénalisant d'un point de vue temps d'exécution.
En effet, sur le serveur où mon site est hébergé, je n'ai pas accès à crontab, donc impossible de lancer des tâches périodiques. Pas de possibilité non plus de paramètrer le temps maximal d'exécution d'un script. Le seul moyen que j'ai trouvé est d'exécuter le script d'envoi de mails à chaque fois que quelqu'un charge une page de mon site.
Pour palier tous ces inconvients, le solution suivante que j'ai trouvée sans un script "tout prêt" est-elle satisfaisante ? Cette solution consiste à appeler la fonction mail() de php une seul fois sans destinataire principal mais avec tous les emails des destinataires dans le champ "Bcc" de l'en-tête. Avantages: un seul appel à mail() de php, tous les mails sont cachés aux destinataires, c'est sendmail qui s'occupe d'envoyer tous les mails en décortiquant l'en-tête. Inconvénients: voir les questions ci-dessous.
Deux questions cependant me titillent: 1) est-ce que mail() rend la main à la fin de l'envoi de tous les messages ou une fois la requête transmise à sendmail ? 2) y a-t-il une limite dans le nombre d'emails dans Bcc ?
$to = ""; //destinataire vide $sujet = "sujet"; $msg = "message"; $entete = ...; //c'est pas du php ! $entete .= "Bcc: , , ..."; //derniere ligne sans n ! $ok = mail( $to, $sujet, $msg, $entete);