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

EDI, CMS, Outils, Scripts et API PHP Discussion :

E-mailing massif


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut E-mailing massif
    Bonjour, je suis supposé créer un outil php pour une campagne de pub de mon entreprise, je pensais m'y prendre tout simplement comme je le fais habituellement, mais il s'agit d'envoyer à peu pret 8 000 000 de mails...

    je voudrais donc savoir avant de me lancer, si php pose des limites concernant le mailing, ou si je pouvais faire cette campagne avec des outils php classique.

    Cordialement

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    tu peux le faire sans pb avec php.
    Les souchi peuvent venir de ton serveur smtp (attention a ta file d'attente) + attention a la construction de tes mails pour éviter de passer dans les spam sur les routeurs.

    Guigo

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    La structure que j'utilise actuellement est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $boundary = '-----='.md5(uniqid(rand()));
     
     
     
    								$headers  = "From: \"Lonsite.com\"<contact@monsite.com>\n";
    								$headers .= "MIME-Version: 1.0\n";
    								$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";
     
    								$message = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
    								$message .= "--" . $boundary . "\n";
    								$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
    								$message .= "Content-Transfer-Encoding: 8bit\n\n";
    								$message .= "<html><body>";
    								$message .= "Mon message au format HTML";
    								$message .= "</body></html>";
    								$message .= $content_encode . "\n";
    								$message .= "\n\n";
    								$message .= "--" . $boundary . "--\n";
     
     
     
     
    $sujet = utf8_decode("Titre de mon message");
     
    mail($email,$sujet,$message,$headers);
    J'ignore si les messages envoyés avec ceci partent en spam


    Pour la "file d'attente", il me faut faire une vérification sur l'envoie du mail, et passer à l'envoie suivant quand le résultat est "true" non?

    Merci

  4. #4
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Il faut que tu fasse un reglage de ton serveur mail. Edite une regle qui supprime les messages quand l'adresse n'est pas bonne, sinon tu risque d'encombrer ta queue mail. La conséquence (toujours celon la config du serveur mail) peut etre un bouclage sur tes mails qui n'arrive pas a partir et donc tous tes autres mails qui sont eux valide reste dans ta file d'attente. Alors image si ca t'arrive au debut !!! Avec une Bdd de 8 000 000 de contacts !

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Je ne peut que te conseiller de procéder en plusieurs passe à l'aide d'un cron. Envoyer 8M de mail d'un bloc c'est juste suicidaire.

    Ce que je ferais :

    - Un script PHP qui une fois lancé écrit un flag dans la base (ou un fichier) pour indiqué qu'il est en cours d'éxecution.
    - Traitement d'un lot d'email (lot de 1000 me semble être honnete)
    - On retire le flag dans la base et on note l'endroit auquel les envoi ce sont arretés (même chose si jamais il y'a eu erreur avec par exemple une alerte pour que tu en sois informé).

    Tu relances ensuite ce script par exemple toutes les 2 min via un cron. Si pas de flag dans la base => je traite un lot de mail , sinon je quitte le script.

    Pense également à modifier le temps d'exécution minimal de php , sinon tu risquerai d'avoir des surprises.

    Note : il n'est pas rare de voir des mailling de grande entreprise s'étale rsur plusieurs jours.

    Note2 : renseigne toi avec ton hébergeur au niveau de l'envoi de mail, chez certains hébergeur grd public type ovh/1&1 ... si tu envoi 8M de mail rapidement tu as de forte chance de voir ton serveur blacklisté et voir tes mail partir en spam automatiquement
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Merci pour vos réponses, je me suis donc renseigné auprès de mon hébergeur, chaque pack d'hébergement me permet de lancer 1 mail/ seconde sans être blacklisté.
    Donc en concevant un script qui boucle toutes les 1.5 secondes, je suis large.

    J'ai cherché comment vérifier la validité d'une adresse mais je n'ai pas trouvé grand chose de concluant, je ne parle pas d'expression régulière, mais bien de vérification de l'existence d'une adresse, pour ne pas me faire blacklister à cause de mauvaises adresses :S

    Auriez vous une piste à ce niveau?

    Ensuite, je voudrais faire un tracing des ouverture de mail, j'ai cru comprendre que je pouvais le faire avec "Disposition-Notification-To" dans le header, ok mais je ne vois pas comment traiter automatiquement les résultats :s

    Je n'ai pas tellement envie d'aller vérifier 300 000 ouvertures de mails sur une boite manuellement...

    Merci pour votre aide !

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Pour la validité des emails regarde du coté de checkdnsrr notamment dans les commentaire de la doc , tu devrais trouver ton bonheur.

    Attention à Disposition-Notification-To , la plus part des webmails ne le gèrent pas.
    Une des solutions pour faire du tracking de mail est d'utiliser une image transparente dans tes mail qui serait un fichier php (<img src="monscript.php" /> ).
    Ca te permet au minimum de compter le nombre de fois ou un mail est entièrement ouvert (sous entendu images affichées) mais tu n'auras pas les adresses qui l'auront ouvert.
    Faut également garder à l'esprit que tu as potentiellement 8M de personnes qui pourront ouvrir ton mail et donc lancer ton script, même si ca s'étale sur quelques jours , faudra pouvoir encaisser la montée en charge
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Pas mal pas mal tout ça Je regarderais mieux à tête reposé demain matin pour la vérification.



    Pour le tracking, je pensais insérer quelque chose du genre une balise object.
    Les balises object ne posent pas plus de problemes que les balises images si?

  9. #9
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    tu peux passer un param dans l'url de ton image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <img src=\"".$url."suivi.php?dest=".$dest."\"

  10. #10
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Parfait

    Par contre, une question bête, le fait de mettre un script dans une balise image, ca ne pose pas de soucis d'interprétation auprés des navigateurs?
    Pas de comportement étrange?

    Merci pour toutes vos infos !

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    A priori non pas de problème , mais 99% des client mail (web ou lourd) n'affiche pas les images par défaut et ne lancera donc pas le script.

    N'hésite cependant pas à faire un mailing de test sur les 3/4 grand webmail , idem pour les clients lourd (genre outlook qui ne gère pas l'encodage tout à fait de la même façon que thunderbird)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Bon je viens de faire quelques essais pour le traking, mais ca n'est pas bien concluant :S

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $boundary = '-----='.md5(uniqid(rand()));
    								$headers  = "From: \"Reseau-Coiffure.com\"<contact@reseau-coiffure.com>\n";
    								$headers .= "MIME-Version: 1.0\n";
    								$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";
     
    								$message = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
    								$message .= "--" . $boundary . "\n";
    								$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
    								$message .= "Content-Transfer-Encoding: 8bit\n\n";
    								$message .= "<html><body>";
    								$message .= '<img width="10px" height="10px" src="http://www.monsite.com/mapagetraking.php?mail=test@hotmail.fr"/>';
    								$message .= "</body></html>";
     
    								$message .= $content_encode . "\n";
    								$message .= "\n\n";
    								$message .= "--" . $boundary . "--\n";
    La balise image appelle un script du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    include('Includes/Connect_BDD.Inc');
    Connect_BDD();
    $mail =$_GET['mail'];
    $serveur=$_SERVER['HTTP_USER_AGENT'];
    $stamp =time();
    $requete = "INSERT INTO  trakingmail (mail ,navigateur ,stamp ) VALUES ('$mail','$serveur','$stamp')";
    $req = mysql_query($requete) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    mysql_close;
    ?>
    Et ma base de donnée ne se met à jour que trés rarement lorsque j'ouvre le même mail, je ne comprend pas, ca ne marche pas à tous les coup?


    Edit : Aprés quelques tests, il semblerait, pour hotmail tout du moins, que le traking fonctionne seulement quand on rafraichie la page... Pas lorsqu'on ouvre le message normalement... Vous avez une idée de l'origine du soucis? :S

  13. #13
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Peut être cela vient t'il du fait que ton script ne retourne pas d'image ?
    Essai au moins de renvoyer un header avec le type mime approprié et pourquoi pas une image blanche.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Content-type: image/png");
    print file_get_contents("images/bad.png");
    J'ai essayé ça, quand je vais directement sur la page, pas de soucis, ca m'affiche l'image, par contre inclu dans le mail, toujours sous hotmail, ca ne m'affiche pas l'image, et ca ne lis pas la bdd...

    Comprend pas vraiment :S

  15. #15
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Aloneghost Voir le message
    Merci pour vos réponses, je me suis donc renseigné auprès de mon hébergeur, chaque pack d'hébergement me permet de lancer 1 mail/ seconde sans être blacklisté.
    Donc en concevant un script qui boucle toutes les 1.5 secondes, je suis large.
    8M de mails… à 1.5 seconde par mail…

    -> 12M de secondes
    3333 heures et quelque…
    139 jours…

  16. #16
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Mon entreprise à plus de 10 hébergements rien que sur cet hébergeur, si je fais un lien avec chaque plan, je divise ce temps par 10

  17. #17
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 36
    Points
    36
    Par défaut
    Hallo,
    Bon, je suis programmeur du dimanche, mais je suis aussi utilisateur. De grâce, même si les percipients ont donné leur adresse volontairement et même dans un contexte professionnel, ces campagnes sont des horreurs. L'image de marque de l'entreprise risque d'en prendre un bon coup (que je ne trouve pas volé)...
    Un lien pour accéder au contenu HTML du "mail" est à mon sens ce qu'il y a de mieux. Le visiteur le suit s'il veut et s'il le suit, c'est bien volontairement et la considération de cet évènement a alors de la "valeur". Du coup l'identification est facile, le trafic réduit, etc, etc...
    Mon client courrier (kmail) est configuré pour me permettre de ne même pas télécharger les mails dont je ne veux pas, à la simple vue des titre, destinataire, date...
    JeitEmgie a eu le même réflexe que moi, même avec 10 hébergements, ça fait un demi mois...
    8 millions de destinataires et 10 hébergement mutualisés... je trouve ça étonnant, pour ne pas dire louche. Un grosse entreprise? Elle veillera à son image de marque et reconsidérera sa campagne et aura une ou plusieurs machines dédiées en ligne. Les autres risquent de mériter l'étiquette "spameur". Tout ceci ne fait pas sérieux, mais le "thread" est intéressantes: merci aux intervenants!
    Avant de réagir en me montrant les dents, notez, s'il vous plaît, qu'il y a une solution dans ce post.
    Salutations.

Discussions similaires

  1. Réponses: 16
    Dernier message: 15/02/2017, 16h30
  2. [AC-2007] envoi de mail massif
    Par zem2006 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/06/2009, 12h35
  3. Réponses: 4
    Dernier message: 06/06/2007, 21h44
  4. [Newsletter] Cherche un script d'envoi d'e-mails massif
    Par heteroclite dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 09/02/2007, 07h21
  5. [Mail] Envoi de mail massif
    Par Invité4 dans le forum Langage
    Réponses: 14
    Dernier message: 10/10/2006, 15h56

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