Envois d'e-mail !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envois d'e-mail !

par adherun » 07 août 2008, 14:06

salut,

Euh c'est un peu l'usine à gaz ton code, Speatoohh.

Je n'y arrive même pas à m'y retrouver, il y a quelque temps j'ai eu le même problême, je l'ai finalement mis en accès libre sous forme d'un petit tuto sur http://www.adherun.com/tutos-voir.php?idtt=60

Si ça peut t'aider!

Bonne chance!

par Victor BRITO » 06 août 2008, 23:47

il existe d'autre solution bien sur...
Comme celle que j'ai évoquée précédemment, avec filter_var() :
$courriel = (isset ($_POST['courriel'])? $_POST['courriel']: '';
if (!filter_var ($courriel, FILTER_VALIDATE_EMAIL)) echo 'Adresse invalide';
else
{
  // La suite des programmes
}

par hakazizi » 06 août 2008, 22:22

j'ajouterais que tant que l'on est en test c'est bon, mais des que l'on ouvre au public il faut faire attention.
pour le post je mettrais ceci:
if(ereg("^([a-zA-Z0-9_.\-]{1,100})@([a-zA-Z0-9_.\-]{1,100})([.]{1})([a-z]{0,4})$",$_POST['EMail']))//on verifie que le mail est valide
{ $destinataire=$_POST["EMail"]; }//si il est valide on remplie la variable qui va servir a l'envoie
else{echo'votre mail n'est pas du bon format ou le champs est vide';exit();}//si il ne l'est pas
message d'erreur et on arrete les machines
il existe d'autre solution bien sur...

par Victor BRITO » 06 août 2008, 20:56

et met à sa place:

     $destinataire=$_POST["EMail"];
     $email_expediteur='ton_email';   // n'oublie pas de mettre ton email ici sinon rien qui va marcher
     $email_reply='ton_email';   // ici aussi met ton email
     $message_html=$_POST["message_texte"];  
D'abord, il faut tester si les variables $_POST sont bien définies avec un isset() (sinon, définition d'une valeur par défaut pour les variables censés récupérer les paramètres passés en POST) et s'assurer que $destinataire est une adresse courriel en bonne et dûe forme. En PHP 5.2, filter_var() permet de le vérifier sans se casser la tête. Ensuite, il faut s'assurer qu'aucun risque d'injection d'en-têtes n'est possible si l'on ne veut pas que ce script ouvre la porte à la mise en place d'un véritable serveur de spams.

par me against the machine » 06 août 2008, 17:28

enleve ça:
     $destinataire='monmail'; 
     $email_expediteur='monmail';  
     $email_reply='monmail';  
     $message_texte='Bonjour,'."\n\n".'Voici un message au format texte';  
     $message_html='<html>    
et met à sa place:

     $destinataire=$_POST["EMail"];
     $email_expediteur='ton_email';   // n'oublie pas de mettre ton email ici sinon rien qui va marcher
     $email_reply='ton_email';   // ici aussi met ton email
     $message_html=$_POST["message_texte"];  

Envois d'e-mail !

par Speatoohh » 27 juil. 2008, 12:49

Bonjour..

Voilà j'ai un petit problème ^^ étant débutant dans le domaine j'ai été cherhcer des scripts sur le net afin de faire un formulaire qui permet d'envoyer de mails..

du cotè php j'ai ça:
<?php  
     //-----------------------------------------------  
     //DECLARE LES VARIABLES  
     //-----------------------------------------------  
 
     $destinataire='monmail'; 
     $email_expediteur='monmail';  
     $email_reply='monmail'; 
 
     $message_texte='Bonjour,'."\n\n".'Voici un message au format texte';  
     $message_html='<html>  
     <head>  
     <title>Titre</title>  
     </head>  
     <body>Test de message</body>  
     </html>';  
 
     //-----------------------------------------------  
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML  
     //-----------------------------------------------  
 
     $frontiere = '-----=' . md5(uniqid(mt_rand()));  
 
     //-----------------------------------------------  
     //HEADERS DU MAIL  
     //-----------------------------------------------  
 
     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";  
     $headers .= 'Return-Path: <'.$email_reply.'>'."\n";  
     $headers .= 'MIME-Version: 1.0'."\n";  
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';  
 
     //-----------------------------------------------  
     //MESSAGE TEXTE  
     //-----------------------------------------------  
     $message = 'This is a multi-part message in MIME format.'."\n\n";  
 
     $message .= '--'.$frontiere.'--'."\n";  
     $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";  
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";  
     $message .= $message_texte."\n\n";  
 
     //-----------------------------------------------  
     //MESSAGE HTML  
     //-----------------------------------------------  
     $message .= '--'.$frontiere.'--'."\n"; 
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";  
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";  
     $message .= $message_html."\n\n";  
 
     $message .= '--'.$frontiere.'--'."\n";  
 
     if(mail($destinataire,$sujet,$message,$headers))  
     {  
          echo 'Le mail a été envoyé';  
     }  
     else  
     {  
          echo 'Le mail n\'a pu être envoyé';  
     }  
?> 
et du cotè html j'ai ceci:

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt­d"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Envoi d'email</title> </head> <body> <Form name="Contact" action="send.php" method="POST"> <Table border=0 cellspacing=0 cellpadding=0 class="Texte"> <Tr> <Td>Sujet du message: <Br> <input name="Sujet" size=54></Td> </Tr> <Tr> <Td>Votre message ou question:<br /> <textarea name="message_texte" cols=56 rows=5></textarea> <Br></Td> </Tr> <Tr> <Td>Votre adresse e-mail:<Br> <input name="EMail" size=54></Td> </Tr> <Tr> <Td>Vos nom et prénom:<Br> <input name="Nom" size=54></Td> </Tr> <Tr> <Td>Votre numéro de téléphone:<Br> <input name="Telephone" size=54></Td> </Tr> <Tr> <Td height=15>&nbsp; </Td> </Tr> <Tr> <Td align=center><Input type="submit" value="ENVOYER" style="text-align:center;"> </Tr> </Table> </Form> </body> </html>
Alors je reçois bel et bien un message.. mais sans rien ! ni sujet, ni texte..rien
Quelqu'un pourrait-t'il m'aider..?