Comment créer un script d'envoi d'emails personalisés.


Orkyd
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 445
Inscription: 1 Oct 2004

Comment créer un script d'envoi d'emails personalisés.

Message le Mar Avr 18, 2006 14:07

Bonjour,

J'ai un site proposant d'envoyer à ceux qui s'inscrivent à la newsletter des articles.

lors de l'inscription, la personne doit choisir le ou les themes des articles qu'elle désir recevoir dans sa newsletter.

donc chaque personne reçoit un email personalisé avec les articles et les thèmes qu'elle a choisi.

Malgré toutes mes recherches je n'arrive pas a trouver une technique pour réussir a envoyer à tout le monde un email personalisé en un seul clic.

bref, j'aimerais une fois par semaine cliquer sur "envoyer les newsletter" et que chacun recoive son email avec les articles qu il a sélectionné à l inscription.

Si quelqu'un pouvait m'aider je lui serait tres reconnaisant, car ce problème bloc l ouverture de mon site.

Merci à vous,

dDavid

gomoz
WRInaute discret
WRInaute discret
 
Messages: 230
Inscription: 29 Déc 2004

Message le Mar Avr 18, 2006 15:34

je comprends pas trop à quel moment tu as un problème.

Si les membres sont dans une bdd avec le nom des thèmes choisi, tu fais un truc du genre :

SELECT email FROM la_table WHERE theme=xxx; -- à adapter bien sur si les membres sont pas dans la même table que les sujets.
while($row=mysql_fetch_assoc())
{
if(empty(les_themes_a_poster[$row['email']]))
les_themes_a_poster[$row['email']]='ici la partie du corps du message à envoyer en rapport avec le thème';
}
... parreil pour les autres thèmes

à la fin

tu fais un foreach et tu envoie pour tous les clefs de les_themes_a_poster un message incluant la valeur de les_themes_a_poster à l'endroits voulu.

Mais y a encore beaucoup d'autre façon de le faire...


ps: "theme=xxx" ne sugere rien quand au contenu...


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Re: Comment créer un script d'envoi d'emails personalisés.

Message le Mar Avr 18, 2006 16:29

Je pense que la 1ère question c'est effectivement ça: en quoi est developper ton site? en php? en html? en asp? j'imagine en php et si c'est le cas, tu dois bien avoir une bdd où sont stockés tes données?

pilou0007
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 18 Avr 2006

Message le Mar Avr 18, 2006 21:30

Salut, alors je travaille pour orkyd et voila ce que j'ai fait :

Explication du script :

Alors pour les emails il y a 2 tables

1 table journalistes ou dedans sont stocké les emails
1 tables contenir ou dedans il y a stocké les id des email & les id des thèmes thématique

Donc si 1 email est inscrit a plusieurs thème thématique, il a plusieurs entré dans la table contenir.

Donc pour les articles, on les recup en checkand des checkbox.

Donc enfaîte le script construit les email avec les articles sélectionnée, pour chaque article, il doit les places dans les parties correspondantes pour le mail, c'est a dire : les communiquer, les conférence & les actu blogs

Donc au début sa trie chaque articles dans les parties correspondantes, et en fait le problème, c que je n'arrive pas a dire qu'il doit sélectionné les articles correspondant a l'email qui lui correspond a plusieurs thèmes.

Voilà se que j'ai fait :

//DECLARATION
$list=$_POST['list'];
$conf='0';
$com='0';
$actub='0;';
//FIN DECLARATION

$selection = mysql_query("SELECT email FROM journalistes");

while($envoie=mysql_fetch_array($selection))
{
$email = $envoie['email'];
//CREATION DU MAIL
$date = date("d/m/Y");
$headers = "From: \"contact@xxxxxxxxxx.com\"<contact@xxxxxxxxxx.com>\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

$sujet = "[Vos communiqués xxxxx du $date ]";

$message = "<html><body>------------------------------------------------------------------------------------------------------------------------------";
$message .= "<font face=\"Arial\" size=\"5\"><strong><br>Article</strong><font color=\"#ff0000\"><strong>Presse</strong></font><font color=\"#000000\" size=\"2\"> $date<br></font>";
$message .= "<font size=\"1\"><strong><font color=\"#0000ff\">Vos communiqu&eacute;s, conf&eacute;rences et articles de Blogs.<br>";
$message .= "</font></strong><a href=\"http://www.xxxxxxxxxx.com\" target=\"_blank\"><strong><font color=\"#000000\">www.xxxxxxxxxx.com</font></strong></a></font></font><br>";
$message .= "------------------------------------------------------------------------------------------------------------------------------";

for ($i = 0; $i < count($list); $i++)
{
$retour = mysql_query("SELECT idA, titre, date, resumer, type, idThe FROM articles, appartenir, journalistes WHERE idA= '$list[$i]' ");
$donnees = mysql_fetch_array($retour);
$type = $donnees['type'];
$titre = $donnees['titre'];
$dateart = date('d/m/Y', $donnees['date']);
$resumer = $donnees['resumer'];
$id = $donnees['idA'];


if ($type == '2')
{
if ($com==0)
{
$message .= "<p></p><font face=Arial size=2><u><font size=3>Communiqués :</font></u><p></p>";
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=2&id=$id\" target=\"_blank\"><b>[Suite du communiqués]</b></a></font><br><br>";
$com=1;
}
else
{
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=2&id=$id\" target=\"_blank\"><b>[Suite du communiqués]</b></a></font><br><br>";
}
}

elseif ($type == '3')
{
if ($conf==0)
{
$message .= "<p></p><font face=Arial size=2><u><font size=3>Conférences :</font></u><p></p>";
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=3&id=$id\" target=\"_blank\"><b>[Suite de la conférence]</b></a></font><br><br>";
$conf=1;
}
else
{
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=3&id=$id\" target=\"_blank\"><b>[Suite de la conférence]</b></a></font><br><br>";
}
}

elseif ($type == '4')
{
if ($actub==0)
{
$message .= "<p></p><font face=Arial size=2><u><font size=3>L'actu en Blog :</font></u><p></p>";
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=4&id=$id\" target=\"_blank\"><b>[Voir la suite]</b></a></font><br><br>";
$actub=1;
}
else
{
$message .= "<font size=2><font face=Arial><strong><font color=\"#0000ff\">[$dateart] $titre :</font><br></strong>";
$message .= "<font face=Arial size=2><font color=\"#000000\">$resumer - <a href=\"http://xxxxxxxxxx.com/voir.php?type=4&id=$id\" target=\"_blank\"><b>[Voir la suite]</b></a></font><br><br>";
}
}

}
$message .= "<font face=Arial size=2>A votre service,</font><br>";
$message .= "<font face=Arial size=2>L'équipe xxxxxxxxxx.<br><br></font>";
$message .= "<font face=Arial size=2><font color=\"#808080\"><em>Service d'information offert par Article Presse :</em></font>";
$message .= "<a href=\"http://www.xxxxxxxxxx.com\"><font color=\"#808080\"><em>www.xxxxxxxxxx.com</em></font></a><font color=\"#808080\"><em> - <u><font color=\"#0000ff\"><a href=mailto:\"contact@xxxxxxxxxx.com\">contact@xxxxxxxxxx.com</a></font></u></em><br>";
$message .= "<font face=Arial color=\"#808080\" size=2><em>Pour vous désabonner de cette liste d'information veuillez cliquer ici.</em></font>";

// envoie email
mail($envoie['email'],$sujet,$message,$headers);
}


en fait avec ce code, sa envoie 1 mail a tout les membres avec tout les thémes séléctionnées.


Orkyd
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 445
Inscription: 1 Oct 2004

Message le Mer Avr 19, 2006 13:55

quelqu'un a t il une solution ? ci dessus vous avez le code actuel.

en fait celà fonctionne si une personne choisi un seul thème, mais si on peut choisir plusieurs thèmes celà ne fonctionne plus.

Merci pour votre aide svp


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Message le Ven Avr 21, 2006 8:36

essai un while sur la table "contenir" puisque c'est là où sont stockés les thèmes pour chaque emails.

Si tu while la table journaliste, c'est normal qu'il n'y ai que 1 email envoyé puisque tu n'as pas d'entrés multiples apparemment dans cette table.


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Ven Avr 21, 2006 8:41

une solution de rechange pour alleger ton serveur :
tu envois le newsletter qui sert juste de lien vers la page du site ou le contenu sera généré en fontcion de theme choisi

ca peut pas le faire ? parceque générer et envoyer X newsletter diffrérentes a X personnes, ca peut tres vite etre lourd, non ?t'as le serveur qui suit ?

pilou0007
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 18 Avr 2006

Message le Ven Avr 21, 2006 17:30

bradeux a écrit:essai un while sur la table "contenir" puisque c'est là où sont stockés les thèmes pour chaque emails.

Si tu while la table journaliste, c'est normal qu'il n'y ai que 1 email envoyé puisque tu n'as pas d'entrés multiples apparemment dans cette table.


Non pas possible, car sa envera 1 email par théme que l'email sera inscrit

Donc certain membre pourrait recevoir xx fois le mail selon xx thémes auquel il sont inscrit ! :wink:


Orkyd
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 445
Inscription: 1 Oct 2004

Message le Sam Avr 22, 2006 13:05

quelqu un aurait une solution ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Voice

  • Combinaison de mots-clés
    Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité