IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Mailing de masse et cron. Utiliser PHP ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut [Mail] Mailing de masse et cron. Utiliser PHP ?
    Bonjour,

    j'ai réalisé un script d'envoi de mail en masse mais pour arriver à envoyer 5000 messages, je recharge ma page tous les x envois. ça marche très bien mais je dois maintenant coupler cela avec un cron pour un envoi auto.
    Or avec ce système cela ne peut pas fonctionner. Mes questions sont les suivantes ainsi que mes "exigences" :

    - safe mode activé donc pas moyen de toucher au set_time_limit
    - je ne veux pas utiliser le bcc pour être sûr que les mails arrivent bien

    - est-il possible de recharger un script php dans lui-même ? (un genre de header mais qui rechargerait le script avec de nouveau 30s d'exécution, un "include récursif" peut être )
    - est-ce qu'un autre langage serveur le ferait ? Perl ?
    - est-ce que de telle application serveur existerait, même payante ?

    Par avance merci pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Citation Envoyé par r-zo
    mais je dois maintenant coupler cela avec un cron pour un envoi auto.
    Or avec ce système cela ne peut pas fonctionner.
    Avec quel système que ca ne peut pas fonctionner? le cron?
    J'ai une appli similaire qui fait de l'envoi massif de mails, et la meilleure solution reste le cron qui lance ton script, qui parse une DB (ou autre) et check s'il reste des envois à faire.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    je suis d'accord sur le principe mais si ton cron lance le fichier php, je doute qu'un envoi de 5000 messages soit possible. Je parle par rapport au temps d'exécution de 30 secondes par défaut.

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Evidemment, tu feras passer ton cron toutes les X minutes, et tu fais traiter seulement un certain nombre de mails à ton script, pas tout d'un coup.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 67
    Points
    67
    Par défaut
    Pourquoi ne pas faire une redirection après 30s en passant par l'url le point d'arrivée de la page courante, par conséquent le point de départ du prochain rechargement ?

  6. #6
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    En toute honnêteté, je pense que le cronjob a toute son utilité dans le cas présent: effectuer une tache planifiée à intervalles donnés...
    On peut commencer à s'aventurer dans des redirections, et des gestions de timeout etc etc, mais à quoi bon, qd il suffit "simplement" de gérer une queue, et de programmer un cronjob?
    Mais ca n'engage que moi

  7. #7
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    euh... qui dit CRON dit PHP exécuté en "CLI", donc logiquement pas de SAFE_MODE...

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 331
    Points : 4 317
    Points
    4 317
    Par défaut
    Il y a webcron.org qui te permet d'exécuter une page à des heures données.
    Tu pourrais les envoyer par lot de 2000 toutes les heures tant qu'il n'en reste plus à envoyer.

  9. #9
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Tout dépend du professionnalisme de l'appli en question... Pour un truc perso, ok, mais pour un truc pro, je ne fme reposerais pas sur un service gratuit comme celui là.

  10. #10
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    déjà merci pour vos réponses.

    Je suis sur un serveur dédié chez un hébergeur avec le safe_mode activé et cette possibilité sera offerte aux entreprises.

    Donc pour vous, pour un envoi, par exemple toutes les semaines, je devrais paramétrer plusieurs crons qui se lance tous les 15 minutes par exemples pour envoyer une centaine de messages ?

    est-ce qu'avec une appli perl cela pourrait être mieux (je ne connais pas du tout perl) ?

    et je répète que si une appli pro existe, même payante, je suis preneur.

  11. #11
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    je n'ai peut être pas été clair, mais normalement en CLI le SAFE_MODE n'est pas activé. Il ne l'est que pour Apache, pour palier aux problèmes de sécurité de ce contexte d'utilisation.

    Si ce n'est pas le cas de ton hébergeur, il y a un malaise dans sa configuration ; d'autant plus si tu es sur un serveur dédié. L'idéal serait d'en discuter avec lui.


    Je gère les machines d'un client faisant régulièrement (minimum une fois par semaine) des mailings de plus de 500'000 adresses. Tout est géré par PHP, en cli, lancé via cron... surtout pas en passant par Apache !

  12. #12
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    Ok merci pour ces précisions je ne connaissais pas du tout le CLI. J'ai vu qu'il y avait pas de doc là dessus, je vais donc m'y pencher.

    Quelques dernières questions :
    - est-ce qu'un script php bien formé (données sepérées de la présentation, etc ...) pour être utilisé sur un site est facilement modifiable pour être lancé via CLI ?
    - donc avec CLI mon script serait capable d'envoyer plusieurs milliers de messges d'un coup ? Est-ce que le reste des activités du serveur s'en trouvent très ralenties (affichage des pages des autres sites, etc ...) ?

    Par avance merci

  13. #13
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Pour la DOC sur le CLI, il y a ça : http://at.php.net/manual/fr/features.commandline.php . Ca ne couvre pas forcément tout, mais c'est déjà très complet.

    Pour ce qui est de ton script "bien formé", impossible à dire... Si tu utilises un framework qui fait déjà plein de trucs sans te demander ton avis, bah pas forcément... Dans tous les cas le plus simple c'est d'essayer : tu ouvres une session SSH sur ton serveur dédié, et lance un petit script PHP.

    donc avec CLI mon script serait capable d'envoyer plusieurs milliers de messges d'un coup ? Est-ce que le reste des activités du serveur s'en trouvent très ralenties (affichage des pages des autres sites, etc ...) ?
    Oui, parfaitement.
    Après coté inpact sur le serveur, tout dépend du serveur de mail utilisé et de sa configuration. En configurant Exim en "queue_only" par exemple, et en bridant le nombre de processus parallèle, tu peux parfaitement envoyer 50'000 mails d'un coup sans que ton site ne soit rallenti.
    Mais pour la configuration exact du serveur de mail, là encore, le plus simple est de voir avec ton hébergeur.

  14. #14
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    merci beaucoup pour toutes ces précisions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Newsletter] Envoi de mail en masse par paquet en PHP
    Par wouha dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 09/01/2014, 18h32
  2. [Mail] Newsletter, problème d'envois... cron ?
    Par Smash34 dans le forum Langage
    Réponses: 5
    Dernier message: 12/05/2006, 09h53
  3. [Mail] Equivalence d'une "variable" asp en php
    Par xender dans le forum Langage
    Réponses: 14
    Dernier message: 06/12/2005, 14h32
  4. [Mail] Comment créer son premier page en PHP
    Par gymac dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2005, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo