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] Exécution d'un fichier newsletter


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut [Mail] Exécution d'un fichier newsletter
    Bonjour,

    J'ai un fichier php pour un emailling qui passe en boucle les adresses email dans une base de données et qui envoie une newsletter au format HTML.

    Le fichier s'exécute par une URL du type : http://www.monsite.com/mail/emailling?envoie=OK

    L'ennui c'est que la base de donnée contient environ 30'000 emails et parfois lors de l'exécution du script, la boucle s'arrete pour je ne sais quelle raison. Est-ce le navigateur qui met trop de temps a répondre ? Le serveur trop chargé ? Quelle sont les solutions possibles pour gérer ce problème ?

    Merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Salut!
    Félicitation pour tes 30 000 abonnés!
    Alors peut etre est juste une protection antispam de ton hébergeur non?
    Si c'est le cas renseigne toi sur son critére et adapte ton code.
    Par exemple si ton hébergeur permet l'envoi de 5000 mail a la fois et demande ensuite un temps d'attente adapte ton code pour faire 6 envoi de 5000 espacé du temps d'attente.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Moi je pencherais plus sur le fait que ta boucle prend trop de temps à se remplir et que la page ne peut donc pas se terminer correctement.

    Tu devrais faire un script qui fait, comme dit plus haut, une pause de 20-25 secondes (je donne un temps comme ça), puis continuer (par exemple, tu pourrais mettre en variable le dernier id récupéré).

    J'espère que ça pourra t'aider.

    See you.

  4. #4
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Ok merci je pense pas que le prob vient de l'hébergeur...

    Cependant comment faire pour que la boucle tout les 2000 enregistrements faire une pause de 20 secondes ?
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    j'ai déjà eu le problème avec mon hébergeur n'acceptait que 45 envois maxi en CCI (fait gaffe à cette limite en CCI), alors j'ai du faire des paquets de 45 pour envoyer 10000 mails ! avec des pauses de qq secondes entre. Et cela fonctionnait bien... bon courage

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 28
    Points : 35
    Points
    35
    Par défaut
    Salut,

    Je pense que ta page doit mettre plus de temps pour s'exécuter que ne l'autorise le MAX_EXECUTION_TIME de ton serveur.

    Pour parvenir à ce genre de problème, il existe une technique très simple :
    La table qui contient les emails doit contenir un champs "envoye" (le nom peut varier). Ton script d'envoi de mail sélectionne tous les mails ou le champ "envoye" contient 0, dans la limite de X mails (500 < X < 1000).
    Ton script doit être appelé par un cron toutes les 5 minutes.

    Toutes les lignes pour lesquelles un mail a été envoyé doit être modifiée pour que le champ "envoye" contienne 1.

    Cette technique permet d'envoyer quelques centaines de mails à la fois, sans atteindre la limite d'exécution.

    Cette technique est d'autant plus avantageuse que, si le script plante toujours, il suffit de réduire le X pour alléger le temps d'exécution

  7. #7
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Ton script doit être appelé par un cron toutes les 5 minutes.
    C'est quoi un cron ? J'ai pas vraiment compris la technique que tu proposes...

    Desolé !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/11/2005, 14h39
  2. Réponses: 7
    Dernier message: 12/08/2005, 09h47
  3. envoi mail avec piece jointe fichier excel
    Par flogreg dans le forum ASP
    Réponses: 12
    Dernier message: 20/12/2004, 16h02
  4. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  5. Scanner des mails et récupérer le fichier attaché
    Par delphim dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/04/2003, 09h35

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