limite de CCI sur une fonction mail()

leraf
Invité n'ayant pas de compte PHPfrance

10 janv. 2007, 10:59

Bonjour !

J'ai une petite question à poser... je suis en train de développer en flash une petite interface de vidéomail (une interface pour choisir vidéo et envoyer le mail >> php envoi du mail >> le destinataire reçoit le mail avec un lien >> le lien renvoit sur une interface flash avec vidéo correspondante) et je me demandais, comme je dois envoyer ce mail à une liste de diffusion de + de 5000 adresses si il y avait des pièges connus à éviter, si il fallait saucissoner l'envoi etc ... je passe par la fonction mail en php et je me disais que le champs CCI avait peut être ces limites (difficile de tester sur un nombre impressionnant d'adresse :) ).

Le mail, c'est soit du text / plain soit du html, mais il n'y a aucun élément multimédia inséré dedans, c'est de la balise quoi, tout ce qui est image et vidéo est en ligne...

voilà donc si je peux abuser et avoir un retour de votre expérience en la matière, à savoir si oui ou non, + de 5000 adresses, c'est trop pour un CCI (l'appli est hébergée sur oceanet, une offre mutualisée...) direct dans une fonction mail(), ce serait super chouette.

Et au cas où vous me confirmez que ça craint, auriez-vous des pistes de recherche pour gérer ce saucissonage de l'envoi ?

Merci

Eléphant du PHP | 445 Messages

10 janv. 2007, 11:12

Il te serait préférable d'envoyer les mails par paquets plutôt que tous d'un coup.

X mails toutes les X minutes / heure

Car 5 000, ça risquerait de surcharger quelque peu le serveur, surtout si tu es en mutualisé, tu pourrais te faire supprimer ton hébergement avec obligation de prendre un dédié ou de changer d'hébergeur (^^)
LLDC
Ulti

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 janv. 2007, 11:24

Effectivement, il y a quelques pièges a éviter
  • un mail à X personnes risque d'être considéré comme un spam chez les destinataires
  • X mails à une personnes risque de plomber ton serveurs et de le blacklister chez les principaux FAI
Comme le dit Ultim4T0m, la meilleur solution est d'envoyer des petits paquets de mail (<200) à la fois et de renouveler l'envoi toutes les X minutes (~5mn)

Pour ça, tu peut avoir une table qui stocke les emails et qui contient un drapeau disant "mail envoyé/mail pas envoyé"

Tu as une tache Cron qui tourne toutes les 5mn et qui sélectionne les emails dont le drapeau est à "mail pas envoyé" dans la limite de 200 lignes et qui réalise les envois sur ces mails.
Ce cron va sélectionner 200 lignes à chaque tour (toutes les 5mn) tant qu'il restera des mails à envoyer.

Lorsque tu veux réexpédier des mails, il ne te reste plus qu'a modifier le drapeau à "mail non envoyé" de tout les enregistrements
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 janv. 2007, 11:38

OK ! merci beaucoup pour vos retours !

Auriez-vous un lien vers un tuto ou autre info pour m'aider à réaliser cette gestion d'envoi par petits paquets ?

merci encore !

raf
Eléphanteau du PHP | 20 Messages

10 janv. 2007, 11:41

euh ... l'invité c'est moi, je ne m'étais pas authentifié avant de poster :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

10 janv. 2007, 13:11

Auriez-vous un lien vers un tuto ou autre info pour m'aider à réaliser cette gestion d'envoi par petits paquets ?
Ben là non ? http://www.phpfrance.com/forums/voir_re ... php#171529 :P

Y'a des passages qui te posent problème dedans ?

raf
Eléphanteau du PHP | 20 Messages

10 janv. 2007, 13:24

Y'a des passages qui te posent problème dedans ?
euhh oui ...

tu peut avoir une table qui stocke les emails et qui contient un drapeau disant "mail envoyé/mail pas envoyé"
ça c'est cool, je vois super :)
Tu as une tache Cron qui tourne toutes les 5mn et qui sélectionne les emails dont le drapeau est à "mail pas envoyé" dans la limite de 200 lignes et qui réalise les envois sur ces mails.
Ce cron va sélectionner 200 lignes à chaque tour (toutes les 5mn) tant qu'il restera des mails à envoyer.
là ... ça dépasse pour l'instant ce que je sais faire ... je suis en train de regarder la doc sur les fichiers cron ... mais si vous avez des liens bien faits avec des explications, un exemple d'interraction cron / php je suis preneur ...

je fais comme tout le monde, je regarde sur google, mais je sais par exemple dans mon domaine de compétence qui est flash, qu'il y a sur plein de sujets, des liens hyper interessants que l'on trouvera pas forcément du premier coup sur google .... d'où l'intérêt de demander à des pros s'ils n'ont pas des liens en stock et là, c'est sur les fichiers crons et leurs interractions possibles avec php :)

sinon, je me paluche google hein pas de soucis ... c'est ce que je suis en train de faire :) c'est au cas où !

Eléphant du PHP | 445 Messages

10 janv. 2007, 14:27

Pour plus d'infos sur le cron tu peux aller là :

http://www.phpfrance.com/forums/voir_su ... e-cron.php
LLDC
Ulti

raf
Eléphanteau du PHP | 20 Messages

10 janv. 2007, 14:46

merci :)