Envoie de mail
Résolu/Fermé
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
-
12 nov. 2017 à 18:33
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 17 nov. 2017 à 16:43
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 17 nov. 2017 à 16:43
A voir également:
- Envoie de mail
- Yahoo mail - Guide
- Publipostage mail - Guide
- Cci mail - Guide
- Windows live mail - Télécharger - Mail
- Creer adresse mail outlook - Guide
12 réponses
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
Modifié le 12 nov. 2017 à 18:46
Modifié le 12 nov. 2017 à 18:46
Bonjour,
Ben... ici :
puisque c'est là que tu "génères" l'envoie des messages aux membres...
Par contre .. je t'invite à appliquer ceci dans l'écriture de tes codes :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Cela rendra ton compte plus clair, donc plus facile à maintenir ... aussi bien pour toi que pour ceux à qui tu viens poser tes questions...;
Sans oublier de gérer les éventuelles erreurs PDO en plaçant CHAQUE requête dans un bloc try/catch (et en ayant activé la gestion des erreurs PDO dans ta connexion )
Pour rappel : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
NB : dans le premier lien que je t'ai donné... tu pourras lire un truc intéressant concernant l'utilisation de isset ET de !empty ....
J'espère que tu feras la correction dans ton code ...
Cordialement,
Jordane
Ben... ici :
if (is_array($envoyer)) { foreach($envoyer as $iddest) { $sql = "INSERT INTO cdc_destinataires (idmess, iddest) VALUES ('".$idmess."', '".$iddest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $idmess); $requete->bindParam(':iddest', $iddest); $requete->execute(); }
puisque c'est là que tu "génères" l'envoie des messages aux membres...
Par contre .. je t'invite à appliquer ceci dans l'écriture de tes codes :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Cela rendra ton compte plus clair, donc plus facile à maintenir ... aussi bien pour toi que pour ceux à qui tu viens poser tes questions...;
Sans oublier de gérer les éventuelles erreurs PDO en plaçant CHAQUE requête dans un bloc try/catch (et en ayant activé la gestion des erreurs PDO dans ta connexion )
Pour rappel : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
NB : dans le premier lien que je t'ai donné... tu pourras lire un truc intéressant concernant l'utilisation de isset ET de !empty ....
J'espère que tu feras la correction dans ton code ...
Cordialement,
Jordane
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
12 nov. 2017 à 20:04
12 nov. 2017 à 20:04
Bonjour,
Merci pour ton aide. Je travail directement sur mon serveur. Je vais voir, il dois avoir un autre soucis pour l'envoie de mail car j'avais bien placé le script à cet endroit.
J'ai déjà mis en place une fonction d'envoie de mail pour autre chose et ça fonctionne.
Je vais regarder tout ça.
Merci
Merci pour ton aide. Je travail directement sur mon serveur. Je vais voir, il dois avoir un autre soucis pour l'envoie de mail car j'avais bien placé le script à cet endroit.
J'ai déjà mis en place une fonction d'envoie de mail pour autre chose et ça fonctionne.
Je vais regarder tout ça.
Merci
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 nov. 2017 à 20:35
12 nov. 2017 à 20:35
Y'a plusieurs erreurs dans ton code ...
Déjà au niveau de ta requête
Revient à écrire
Ensuite, au niveau de l'envoie du mail.. tu as la variable $headers .. hors je ne voie nul-part où tu l'as initialisée dans ton code ..
Tu pourrais éventuellement tester ce code pour gérer l'envoi de mail
Déjà au niveau de ta requête
AND idclas != 1 AND idclas != 2 AND idclas != 3 AND idclas != 4 AND idclas != 8
Revient à écrire
idclas NOT IN (1,2,3,4,8)
Ensuite, au niveau de l'envoie du mail.. tu as la variable $headers .. hors je ne voie nul-part où tu l'as initialisée dans ton code ..
Tu pourrais éventuellement tester ce code pour gérer l'envoi de mail
function sendEmail($to,$from ='moi',$subject='sujet mail',$message="",$attach = NULL){ $headers = "From: $from"; // boundary $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // headers for attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // multipart boundary $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; $message .= "--{$mime_boundary}\n"; //-------------------------------------------------------// //Ajout des pieces jointes si il y en a if(!empty($attach)){ foreach($attach as $pj){ $file = fopen($pj,"rb"); $data = fread($file,filesize($pj)); fclose($file); $data = chunk_split(base64_encode($data)); $fileName = basename($pj); $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$pj\"\n" . "Content-Disposition: attachment;\n" . " filename=\"$fileName\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; $message .= "--{$mime_boundary}\n"; } } // send if(mail($destinataire, $from, $sujet, $message)) { return true; } else { return false; } }
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
12 nov. 2017 à 20:47
12 nov. 2017 à 20:47
pour la variable $header oups j'ai oublié de copié la ligne qui l'initialise en fait je n'avais pas vu.
J'étais en train d'analyser tout ça et je me pose une question..
En fait c'est cette boucle que définie l'id du membre sélectionner donc l'envoie de mail se faisant par rapport à cet ID.
C'est ce que m'a aider à mettre en place.
Je vais tester ta fonction d'envoie de mail.
J'étais en train d'analyser tout ça et je me pose une question..
En fait c'est cette boucle que définie l'id du membre sélectionner donc l'envoie de mail se faisant par rapport à cet ID.
C'est ce que m'a aider à mettre en place.
while ($donnees = $requete->fetch()) { $id = $donnees->idpers; echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL; }
Je vais tester ta fonction d'envoie de mail.
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
12 nov. 2017 à 23:45
12 nov. 2017 à 23:45
Bonjour,
Je ne comprends pas trop pourquoi je n'arrive pas à envoyer un mail après avoir sélectionner les checkboxs et envoyer le formulaire.
Si vous pouvez m'aider.
Je vous remercie.
Je ne comprends pas trop pourquoi je n'arrive pas à envoyer un mail après avoir sélectionner les checkboxs et envoyer le formulaire.
Si vous pouvez m'aider.
Je vous remercie.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 nov. 2017 à 07:43
13 nov. 2017 à 07:43
Sans voir ton code...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
13 nov. 2017 à 08:24
13 nov. 2017 à 08:24
Bonjour,
Voici la page.
Merci
Voici la page.
Merci
<h1>Envoyer un message</h1> <?php $PARAM = array ( 'IDMESS' => isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '', 'IDEXP' => isset($_POST['idexp']) ? $_POST['idexp'] : '', 'DMESS' => isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '', 'TMESS' => isset($_POST['tmess']) ? $_POST['tmess'] : '', 'MESS' => isset($_POST['mess']) ? $_POST['mess'] : '', ); if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': if ($_POST['tmess'] == '' || ($_POST['mess'] =='')) { $erreur = "<span class='erreur'>Veuillez renseigner le Titre et le Message !</span>"; } else { $sql ="INSERT INTO cdc_messages (idexp, dmess, tmess, mess)VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $PARAM['IDMESS']); $requete->bindParam(':idexp', $_SESSION['idpers']); $requete->bindParam(':dmess', $PARAM['DMESS']); $requete->bindParam(':tmess', $PARAM['TMESS']); $requete->bindParam(':mess', $PARAM['MESS']); $requete->execute(); $idmess = isset($_POST['idmess']) ? $_POST['idmess'] : NULL; $idmess = $bdd->lastInsertId(); $envoyer = isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL; $iddest = isset($_POST['iddest']) ? $_POST['iddest'] : NULL; if (is_array($envoyer)) {foreach($envoyer as $iddest) { $sql ="INSERT INTO cdc_destinataires (idmess, iddest)VALUES ('".$idmess."', '".$iddest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $idmess); $requete->bindParam(':iddest', $iddest); $requete->execute(); } } $success = "<span class='success'>Ton message a bien été envoyé</span>"; } break; } } ?> <form method="post" name="env" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return verif()" enctype="multipart/form-data"> <table class="resp" border="0" cellspacing="1" cellpadding="5"> <tr><p>Fichier autoriser (WORD, EXCEL ou PDF) 500Ko maximum : </br></br> <input type="hidden" name="MAX_FILE_SIZE" value="500000"/> <input type="file" name="upload_localfile" id="upload_localfile"/></p></tr> <tr><td class="libel">Date:</td> <td><input type="text" name="dmess" value="<?php echo $today ?>" size="8"></td> </tr><tr><td class="libel">Titre:</td> <td><textarea name="tmess" rows="1" cols="40" class="oblig"></textarea></td> </tr><tr> <td class="libel">Message:</td> <td><textarea name="mess" rows="6" cols="40"></textarea></td></tr> <tr><td><input type="hidden" name="action" value="ajouter"></td> <td class="data"><input type="submit" name="submit" value="Envoyer le message"></td></tr></table> <table class="resp" border="0" cellspacing="1" cellpadding="5"> <h4>Choisissez les destinataires!</h4> <?php $sql = "SELECT cdc_adherer.idpers,nom,prenom FROM cdc_personnes,cdc_adherer WHERE cdc_personnes.idpers = cdc_adherer.idpers AND annee = '$aadh' AND idclas IN (3,7,8) AND email != '' ORDER BY nom,prenom"; $requete = $bdd->prepare($sql); $requete->execute(); echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>"; echo "<div><pre>"; while ($donnees = $requete->fetch()) {$id = $donnees->idpers; echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL; } echo "</pre></div>"; ?> </table> </form> </td> </table>
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 nov. 2017 à 09:08
13 nov. 2017 à 09:08
Merci d'appliquer ceci https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Puis de reposter ton code modifié
Puis de reposter ton code modifié
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
13 nov. 2017 à 10:10
13 nov. 2017 à 10:10
A propos de mes gestion d'erreur j'ai une fonction dans mon fichier init.php il est dans le bloc try-catch en PDO.
J'ai rajouté ses 3 lignes.
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Pour l'utilisation de de isset et de !empty cela me semble correct non?
J'ai rajouté ses 3 lignes.
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Pour l'utilisation de de isset et de !empty cela me semble correct non?
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 nov. 2017 à 10:18
13 nov. 2017 à 10:18
Et l'organisation du code ???
Quand je vois des requêtes en plein milieu de code HTML ... je m'arrache les cheveux (bien qu'ils soit coupés très courts....)
Quand je vois des requêtes en plein milieu de code HTML ... je m'arrache les cheveux (bien qu'ils soit coupés très courts....)
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
13 nov. 2017 à 13:11
13 nov. 2017 à 13:11
En fait je ne vois pas très bien c'est à propos de mon formulaire il faut que je mettent des echos ?
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 nov. 2017 à 13:52
13 nov. 2017 à 13:52
Où placer son code php
Pour faciliter la lecture du code et donc sa maintenance et son deubug... on place, en général, le maximum de code php AVANT son code html. On évite également d'ouvrir/fermer les balises de code php dans tous les sens..
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
13 nov. 2017 à 18:57
13 nov. 2017 à 18:57
Voici ma page.
Je vous remercie.
Je vous remercie.
<?php echo "<h1>Envoyer un message</h1>"; $PARAM = array ( 'IDMESS' => isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '', 'IDEXP' => isset($_POST['idexp']) ? $_POST['idexp'] : '', 'DMESS' => isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '', 'TMESS' => isset($_POST['tmess']) ? $_POST['tmess'] : '', 'MESS' => isset($_POST['mess']) ? $_POST['mess'] : '', ); if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': if ($_POST['tmess'] == '' || ($_POST['mess'] =='')) { $erreur = "<span class='erreur'>Veuillez renseigner le Titre et le Message !</span>"; } else { $sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess) VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $PARAM['IDMESS']); $requete->bindParam(':idexp', $_SESSION['idpers']); $requete->bindParam(':dmess', $PARAM['DMESS']); $requete->bindParam(':tmess', $PARAM['TMESS']); $requete->bindParam(':mess', $PARAM['MESS']); $requete->execute(); $idmess = isset($_POST['idmess']) ? $_POST['idmess'] : NULL; $idmess = $bdd->lastInsertId(); $envoyer = isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL; $iddest = isset($_POST['iddest']) ? $_POST['iddest'] : NULL; if (is_array($envoyer)) { foreach($envoyer as $iddest) { $sql = "INSERT INTO cdc_destinataires (idmess, iddest) VALUES ('".$idmess."', '".$iddest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $idmess); $requete->bindParam(':iddest', $iddest); $requete->execute(); } } $success = "<span class='success'>Ton message a bien été envoyé</span>"; } break; } } echo "<table width='100%'> <td width='30%' class='table-separateur-resp' valign='top'> </br></br> <form method='post' name='env' action='' enctype='multipart/form-data'> <table class='resp' border='0' cellspacing='1' cellpadding='5'> <tr> <p>Fichier autoriser (WORD, EXCEL ou PDF) 500Ko maximum :</br></br> <input type='hidden' name='MAX_FILE_SIZE' value='500000'/> <input type='file' name='upload_localfile' id='upload_localfile'/> </p> </tr> <tr> <td class='libel'>Date:</td> <td><input type='text' name='dmess' value='' size='8'></td> </tr> <tr> <td class='libel'>Titre:</td> <td><textarea name='tmess' rows='1' cols='40' class='oblig'></textarea></td> </tr> <tr> <td class='libel'>Message:</td> <td><textarea name='mess' rows='6' cols='40'</textarea></td> </tr> <tr> <td><input type='hidden' name='action' value='ajouter'></td> <td class='data'><input type='submit' name='submit' value='Envoyer le message'></td> </tr> </table> </td> <td width='70%' class='table-separateur-resp' valign='top'> <table class='resp' border='0' cellspacing='1' cellpadding='5'> <h4>Choisissez les destinataires!</h4>"; $sql = "SELECT cdc_adherer.idpers,nom,prenom FROM cdc_personnes,cdc_adherer WHERE cdc_personnes.idpers = cdc_adherer.idpers AND annee = '$aadh' AND idclas IN (3,7,8) AND email != '' ORDER BY nom,prenom"; $requete = $bdd->prepare($sql); $requete->execute(); echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>"; echo "<div><pre>"; while ($donnees = $requete->fetch()) { $id = $donnees->idpers; echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL; } echo "</pre></div> </table> </form> </td> </table>"; ?>
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
15 nov. 2017 à 10:34
15 nov. 2017 à 10:34
Bonjour,
Après plusieurs heures de labeur, j'ai enfin trouvé la solution à mon problème.
Merci.
Après plusieurs heures de labeur, j'ai enfin trouvé la solution à mon problème.
Merci.
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
17 nov. 2017 à 09:09
17 nov. 2017 à 09:09
Bonjour,
Zut je me suis trop emballé trop vite en fait.
Je viens de m'aperçevoir que la fonction envoie de mail ne fonctionne pas correctement pourtant le serveur les reçoit bien, mais ne sont pas redistribué pas le serveur.
Pour faire un topo...
J'ai ma liste de membre avec checkboxs à cocher comme ceux ci.
ensuite j'ai mon envoie de mail.
Pouvez-vous me dire ce qui ne vas pas s'ils vous plait.
Je vous remercie.
Zut je me suis trop emballé trop vite en fait.
Je viens de m'aperçevoir que la fonction envoie de mail ne fonctionne pas correctement pourtant le serveur les reçoit bien, mais ne sont pas redistribué pas le serveur.
Pour faire un topo...
J'ai ma liste de membre avec checkboxs à cocher comme ceux ci.
echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>"; echo "<div><pre>"; while ($donnees = $requete->fetch()) { $id = $donnees->idpers; echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL; } echo "</pre></div>";
ensuite j'ai mon envoie de mail.
Pouvez-vous me dire ce qui ne vas pas s'ils vous plait.
Je vous remercie.
$sql = "SELECT nom,prenom,email FROM cdc_personnes,cdc_adherer WHERE cdc_personnes.idpers = cdc_adherer.idpers AND annee='$aadh' AND idclas IN (2)"; $requete = $bdd->prepare($sql); $requete->execute(); if ($donnees2 = $requete->fetch()) { // Adresse email des destinataires $destinataire = $donnees2->email; $prenom = $donnees2->prenom; while ($donnees2 = $requete->fetch()) $destinataire .= ', '.$_POST['envoyer']; // Titre de l'email $sujet = 'Nouveau message Clique de Cruet'; // Contenu du message de l'email $message = '<html>'; $message .= '<body><p>Bonjour '.$prenom.', <br/>'; $message .= 'Je t\'ai envoyé un nouveau message dans ton espace membre...<br/>'; $message .= 'Bonne lecture.<br/>'; $message .= '<p>'.$_SESSION['prenom'].'</p>'; $message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>'; $message .= '</html>'; // Pour envoyer un email HTML, l'en-tête Content-type doit être défini $headers = 'MIME-Version: 1.0'."\r\n"; $headers .= 'Content-type: text/html; charset=utf-8'."\r\n"; $headers .= 'From:"mon_site"<>'."\n"; // Fonction principale qui envoi l'email mail($destinataire, $sujet, $message, $headers); }
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
17 nov. 2017 à 12:45
17 nov. 2017 à 12:45
Bonjour,
Je viens de m'apercevoir qu'en fait c'est uniquement la première personne de ma liste qui reçois les mail en plus en faisant un print-r cela me retourne....
"pierredupond@gmail.com, Array, Array"
Pouvez-vous m'aider s'ils vous plait.
e vous remercie
Je viens de m'apercevoir qu'en fait c'est uniquement la première personne de ma liste qui reçois les mail en plus en faisant un print-r cela me retourne....
"pierredupond@gmail.com, Array, Array"
Pouvez-vous m'aider s'ils vous plait.
e vous remercie
LaChaux78
Messages postés
564
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
31 mars 2023
32
17 nov. 2017 à 16:43
17 nov. 2017 à 16:43
Je clore ce post.
Cordialement
Cordialement
12 nov. 2017 à 18:48
Il faut paramétrer le smtp dans le php.ini (tu trouveras des exemples et tutos sur le net, certains proposant même d'utiliser fakesendmail. Je te laisse regarder)
Sinon tu peux toujours passer par un script php : PhpMailer qui te permettras d'utiliser une boite mail perso comme une gmail par exemple.