Comment eviter d envoyer un mail sans doublon
KOKOLO
-
aztazt -
aztazt -
Bonjour,
Bonsoir,
Je rencontre un soucis avec mon script de newsletter.
En effet,j'utilise un formulaire pour composer mon mail et je peux cocher divers critères pour envoyer mon mail uniquement à une partie de mes membres (selon leur age, sexe, centre d interets etc).
Apparemment tout fonctionne mais j ai un soucis pour les doublons...En effet, si on suppose qu avec mon formulaire je coche les cases permettant d envoyer un mail aux membres intéressé par les jeux concours et les bons plans...A priori aucun soucis, le mail sera envoyer aux personnes correspondantes...par contre ceux qui auront comme centre d interet les jeux concours et les bons plans recevront le mail 2 fois !
Pour pallier à ce problème j'ai pensé qu il serait bien de créer une autre table nommée mailNewsletterDejaEnvoye dans laquelle j insererai les email des personne à qui j ai envoyé le mail... puis lorsque le script envoie les mails pour la 2eme categorie il n envoie que aux mails non présent dans la table mailNewsletterDejaEnvoye...Cela parait un peu compliqué je sais...
Et justement, je voudrait savoir s il y a un moyen plus simple?!
Je vous donne un apercu de ce que je pensais faire...
Merci
Bonsoir,
Je rencontre un soucis avec mon script de newsletter.
En effet,j'utilise un formulaire pour composer mon mail et je peux cocher divers critères pour envoyer mon mail uniquement à une partie de mes membres (selon leur age, sexe, centre d interets etc).
Apparemment tout fonctionne mais j ai un soucis pour les doublons...En effet, si on suppose qu avec mon formulaire je coche les cases permettant d envoyer un mail aux membres intéressé par les jeux concours et les bons plans...A priori aucun soucis, le mail sera envoyer aux personnes correspondantes...par contre ceux qui auront comme centre d interet les jeux concours et les bons plans recevront le mail 2 fois !
Pour pallier à ce problème j'ai pensé qu il serait bien de créer une autre table nommée mailNewsletterDejaEnvoye dans laquelle j insererai les email des personne à qui j ai envoyé le mail... puis lorsque le script envoie les mails pour la 2eme categorie il n envoie que aux mails non présent dans la table mailNewsletterDejaEnvoye...Cela parait un peu compliqué je sais...
Et justement, je voudrait savoir s il y a un moyen plus simple?!
Je vous donne un apercu de ce que je pensais faire...
<?
if ($int1 == '1')
{
$sql=mysql_query("SELECT email FROM membres WHERE jeuxenligne = '1'")or die(mysql_error());
$sql2=mysql_query("INSERT INTO mailNewsletterDejaEnvoye (email2) VALUES ('$SQL')") or die('Impossible d insérer les données dans la base'.mysql_error());
$sql3=mysql_query "SELECT email FROM membres WHERE jeuxenligne = '1' NOT IN (SELECT email2 FROM mailNewsletterDejaEnvoye WHERE email2='$sql' GROUP BY email2)";
while($data = mysql_fetch_array($sql3))
{
$Destinataire = ''.$data['email'].'';
$Sujet = "$typedemande";
$from_email = "webmaster@voilou.fr";
$entetemail = "From: $from_email \n"; // Adresse expéditeur
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
$msg = "$message \n";
mail($Destinataire,$typedemande,$msg,$entetemail);
echo 'Le mail a été envoyé aux membres ayant pour centre d intérêt les jeux en ligne';
}
}
?>
...et ainsi de suite
Merci
A voir également:
- Comment eviter d envoyer un mail sans doublon
- Gmail envoyer un mail - Guide
- Comment envoyer un mail en copie cachée - Guide
- Éviter pub youtube - Accueil - Streaming
- Comment télécharger un mail - Guide
- Comment envoyer un mail avec accusé de réception - Guide
1 réponse
Bonjour,
Transforme ceci :
SELECT email FROM membres WHERE jeuxenligne = '1' NOT IN (SELECT
email2 FROM mailNewsletterDejaEnvoye WHERE email2='$sql' GROUP BY email2)";
en
SELECT DISTINCT email FROM membres WHERE jeuxenligne = '1' NOT IN (SELECT
email2 FROM mailNewsletterDejaEnvoye WHERE email2='$sql' GROUP BY email2)";
Transforme ceci :
SELECT email FROM membres WHERE jeuxenligne = '1' NOT IN (SELECT
email2 FROM mailNewsletterDejaEnvoye WHERE email2='$sql' GROUP BY email2)";
en
SELECT DISTINCT email FROM membres WHERE jeuxenligne = '1' NOT IN (SELECT
email2 FROM mailNewsletterDejaEnvoye WHERE email2='$sql' GROUP BY email2)";