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
|
<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['envoye']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$civilite = stripslashes(trim($_POST['civilite']));
$nom = stripslashes(trim($_POST['nom']));
$expediteur = stripslashes(trim($_POST['mail']));
$ville = stripslashes(trim($_POST['ville']));
$tel = stripslashes(trim($_POST['tel']));
$ordinateur = stripslashes(trim($_POST['ordinateur']));
$case = stripslashes(trim($_POST['case']));
$sujet = stripslashes(trim($_POST['sujet']));
$message = stripslashes(trim($_POST['message']));
}
else
{
$civilite = trim($_POST['civilite']);
$nom = trim($_POST['nom']);
$expediteur = trim($_POST['mail']);
$ville = trim($_POST['ville']);
$tel = trim($_POST['tel']);
$ordinateur = trim($_POST['ordinateur']);
$case = trim($_POST['case']);
$sujet = trim($_POST['sujet']);
$message = trim($_POST['message']);
}
/* Expression régulière permettant de vérifier si le
* format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Expression régulière permettant de vérifier qu'aucun
* en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'contact.php')
{
header('Location: index.php');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($civilite)
|| empty($nom)
|| empty($expediteur)
|| empty($sujet)
|| empty($message))
{
$alert = 'Tous les champs doivent être renseignés';
}
/* On vérifie que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $expediteur))
{
$alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
}
/* On vérifie qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $expediteur)
|| preg_match($regex_head, $nom)
|| preg_match($regex_head, $sujet))
{
$alert = 'En-têtes interdites dans les champs du formulaire';
}
/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire (votre adresse e-mail) */
$to = 'moi@domaine.com';
/* Construction du message */
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'Ce mail a été envoyé depuis monsite.com par '.$civilite.' '.$nom."\r\n\r\n";
$msg .= 'Voici le message qui vous est adressé :'."\r\n";
$msg .= '***************************'."\r\n";
$msg .= $message."\r\n";
$msg .= '***************************'."\r\n";
date_default_timezone_set('Etc/UTC');
require '/includes/PHPMailer/PHPMailerAutoload.php';
//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
// use
// $mail->Host = gethostbyname('smtp.gmail.com');
// if your network does not support SMTP over IPv6
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "moi@gmail.com";
//Password to use for SMTP authentication
$mail->Password = "mon mot de passe";
//Set who the message is to be sent from
$mail->setFrom('moi@gmail.com', 'Dany Last');
//Set an alternative reply-to address
//$mail->addReplyTo('emeteur@gmail.com', 'Dany Last');
//Set who the message is to be sent to
$mail->addAddress('emeteur@hotmail.com', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer GMail SMTP test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->Body = 'conteu';
$mail->isHTML(true);
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
/* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
else
{
unset($_POST);
}
}
?> |
Partager