Envoi massif de mails, comment faire ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par CrazyCow007, 27 Septembre 2006.

  1. CrazyCow007

    CrazyCow007 WRInaute discret

    Inscrit:
    28 Décembre 2003
    Messages:
    185
    J'aime reçus:
    0
    Bonsoir à tous !

    Je commence tout de suite par préciser que j'ai chercher en long et en large sur le moteur de recherche du forum mais rien de ce que j'ai trouvé n'a pu répondre à ma question.

    Evidement, ce n'est pas du SPAM, les personnes qui souhaitent recevoir les emails l'ont autorisé de plein gré.

    Je cherche à améliorer mon script de concours pour qu'il envoi à chaque participant un email (non personnalisé) avec les statistiques hebdomadaires (il faut tabler sur environ 350 inscrits).

    Je ne sais pas trop comment m'y prendre. Est-ce qu'il faut que j'utilise une boucle ou il y a quelque chose de plus léger ?
    De plus sur PHP.net on me dédonseille d'utiliser la fonction mail() pour l'envoi massif. Ils conseillent d'utiliser PEAR::Mail (http://pear.php.net/package/Mail).

    Voilà mon code pour le moment, mais je trouve que l'envoi est relativement long et je sais pas exactement la différence qu'apporte cette classe par rapport à la fonction mail() :?

    Avec cette classe mail je peux choisir entre Mail() ou SMTP, que me conseillez vous ?

    Merci d'avance pour votre aide ! :p
     
  2. Audiofeeline

    Audiofeeline WRInaute accro

    Inscrit:
    20 Octobre 2005
    Messages:
    5 290
    J'aime reçus:
    0
    Sinon il y a de très bons scripts de newsletters...
     
  3. CrazyCow007

    CrazyCow007 WRInaute discret

    Inscrit:
    28 Décembre 2003
    Messages:
    185
    J'aime reçus:
    0
    Je sais mais je préfererais que ce soit automatique et que je l'insère dans mon script de comptage des points. Surtout qu'il se fait à minuit, je tiens pas à le faire manuellement... :roll:
     
  4. baden32

    baden32 Nouveau WRInaute

    Inscrit:
    27 Septembre 2006
    Messages:
    16
    J'aime reçus:
    0
    Nous n'avons rencontré aucun soucis avec la fonction mail() et naturellement la lenteur peut provenir du contenu des messages (textes, images embedded ou pas, etc.)
     
  5. CrazyCow007

    CrazyCow007 WRInaute discret

    Inscrit:
    28 Décembre 2003
    Messages:
    185
    J'aime reçus:
    0
    Je vais rester sur la fonction mail() en attendant alors. Est-ce qu'il est nécessaire de mettre un sleep() à chaque boucle pour ne pas surcharger le serveur où c'est inutile pour 350 mails ?
     
  6. KOogar

    KOogar WRInaute accro

    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    Tout depend de ton serveur mail, pour l'envoie de n mails toute les heures => CRON est ton ami. -www.cron.fr
     
  7. CrazyCow007

    CrazyCow007 WRInaute discret

    Inscrit:
    28 Décembre 2003
    Messages:
    185
    J'aime reçus:
    0
    Non c'est une fois par semaine. Pour le moment mon script s'exécute à partir de 0h00 le mercredi, au moment où arrive un visiteur. Evidement ça peut poser problème si le chargement dure 10sec et qu'il arrête le chargement de la page :roll: Donc je pense que je vais me rediriger sur un système CRON effectivement...
     
  8. KOogar

    KOogar WRInaute accro

    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    C'est mieux, car si c'est un crawler qui tombe dessus le premier, le serveur risque de ne pas executer le source dans son ensemble.

    Je te parlais de l'envoie par exemple de 100 mails par heure avec CRON. dans ce cas, fait 1 table de plus avec 2 champs => limite + date
     
  9. CrazyCow007

    CrazyCow007 WRInaute discret

    Inscrit:
    28 Décembre 2003
    Messages:
    185
    J'aime reçus:
    0
    Ah oui bonne idée, je vais essayer de faire ça :wink:
    Donc je résume :
    Je fais 100 boucles contenant la fonction mail(), opération que je fais répéter toutes les heures jusqu'à ce que la totalité de la liste soit terminée (l'envoi de mails se fera donc de minuit à 3h) ?

    EDIT : Puisque maintenant j'utilise une tâche CRON, je n'ai plus besoin de faire vraiment attention au temps de traitement. Je peux donc très bien personnalisé chaque email envoyé non ?
     
  10. KOogar

    KOogar WRInaute accro

    Inscrit:
    16 Novembre 2004
    Messages:
    4 552
    J'aime reçus:
    0
    Oui, mais encore une fois, le nombre de mail envoyé d'1 coup depend de la capacité de stockage et d'envoie de ton serveur mail. Pose leur la question.

    Le temps d'execution du script n'a rien a voir avec le CRON, il devra s'excuter en moins de 30 secondes, tu peux allonger la durée avec la fonction set_time_limit(0) si ton serveur la supporte.