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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
// Fonctions relatives à l'outil newsletter
//Fonction de vérification d'une inscription préalable
function verif_email_exists($mail)
{
// On compte le nombre de fois où apparait le dit mail dans la base
$verif_presence = mysql_query ("SELECT mail FROM newsletter WHERE mail = '$mail'");
$verif_presence1 = mysql_fetch_array ($verif_presence);
// Si le mail apparait; on renvoit la valeur true
if ($verif_presence1 != NULL)
{
return true;
}
// Sinon, elle n'apparait pas, on renvoit la valeur false
elseif ($verif_presence1 == NULL)
{
return false;
}
}
//Fonction de vérification de format de l'email
function verif_email($mail)
{
// On établit l'archétype d'une adresse mail en expressions régulières et on l'insère dans la variable syntaxe
$syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#' ;
$domain = explode('@', $email);
// On compare l'adresse donnée en argument avec l'archétype; si elle correspond, on valide, sinon on renvoit la valeur false
if (preg_match($syntaxe, $mail))
{
if (checkdnsrr($domain[1]))
{
return true;
}
else
{
return false;
}
}
}
// Fonction d'inscription à la newsletter
function insc_news($mail)
{
// Si la syntaxe d'une adresse mail est bien respectée
if (verif_email($mail) == true)
{
// Si le test de présence de l'adresse dans la base nous renvoit false
if (verif_email_exists($mail) == false)
{
// On conserve la date, puis on envoi l'adresse mail et la date d'inscription à la base
$date_inscription = date("d/m/y");
mysql_query ("INSERT INTO newsletter VALUES('','$mail','$date_inscription') ") or die ("impossible de transmettre ces valeurs");
echo "vous voilà inscrit, vous recevrez donc les derniers articles de toto chaque semaine sous la forme d'un journal pdf";
}
// Sinon c'est que l'adresse est déjà présente dans la BDD
else
{
echo "vous êtes déjà inscrit à cette newsletter, en cas de problème veuillez contactez le webmaster";
}
}
// Sinon, c'est que le format d'adresse n'est pas valide
else
{
echo "le format de votre adresse email ne semble pas être valide, veuillez réessayer";
}
}
//Fonction de désinscription de la newsletter
function desinsc_news($mail)
{
// Si la syntaxe d'une adresse mail est bien respectée
if (verif_email($mail) == true)
{
// Et si le test de présence de l'adresse dans la base nous confirme qu'elle y est inscrite
if (verif_email_exists($mail) == true)
{
// Alors on demande à la base de retirer l'occurence correspondant au mail
mysql_query("DELETE FROM `newsletter` WHERE `newsletter`.`mail` = '$mail' LIMIT 1");
echo "merci d'avoir été fidèle à toto, en espérant vous retrouver bientôt parmi nos abonnés";
}
// Sinon si l'adresse n'est pas présente dans la BDD
elseif (verif_email_exists($mail) == false)
{
echo "Vous n\'êtes actuelement pas inscrit à la newsletter";
}
}
// Sinon, c'est que le format d'adresse n'est pas valide
else
{
echo "Ceci n'est pas un format d\'email valide";
}
}
//Fonctions relatives à l'envoi d'emails
//Fonction relative à l'envoi de mail (passe les filtres hotmail/gmail)
function email($destinataire, $sujet , $messtxt, $messhtml,$mailfrom="newsletter@toto",$namefrom="http://toto.fr")
{
$boundary = "_".md5 (uniqid (rand()));
$entete = "MIME-Version: 1.0\n";
$entete .= "X-Sender: <www.toto.com>\n"; // Votre site
$entete .= "X-Mailer: PHP\n";
$entete .= "X-auth-smtp-user: toto@toto.com \n"; // Votre adresse mail
$entete .= "X-abuse-contact: newsletter@toto.com \n"; // L'adresse mail utilisée pour la newsletter
$entete .= "Reply-to: $namefrom <$mailfrom>\n";
$entete .= "From:$namefrom <www-data@planet-work.com>\n";
$entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\" ";
$message = "--" . $boundary . "\n";
$message.= "This is a multi-part message in MIME format.\n\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $messtxt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= str_replace("=","=3D",$messhtml);
$message .= "\n\n";
return @mail($destinataire, $sujet, $message, $entete);
}
//Fonction pour envoi de la newsletter
function mail_newsletter()
{
my_co();
$adresses = mysql_query("SELECT mail FROM newsletter");
while ($adresses1 = mysql_fetch_row ($adresses))
{
foreach ($adresses1 as $cle=>$valeur)
{
email($mail,votre sujet,votre message,votre en-tete,"","");
}
}
echo "votre mail a correctement été envoyé";
}
mysql_close();
?> |
Partager