Fontion mail: destinataire cci et message html

taxitat Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 18 mars 2009 - 3 mars 2008 à 16:34
taxitat Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 18 mars 2009 - 5 mars 2008 à 10:05
Bonjour à tous,

Comme bcp d'autres, j'ai un formulaire dont le code est plus bas. Je voudrais deux choses:
* Au même temps qu'un email est envoyé au "client" (à son adresse mail, donc) qu'une copie me soit envoyé en cci (que mon adresse n'apparaisse nulle part, donc) Est-ce possible? J'ai cherché un peu sur le web mais rien ne semble marcher... cela doit être simple mais plus on cherche et moins on trouve et plus on se complique la vie...
* Deuxième chose, est-ce possible d'envoyer le message en html? Pour l'instant je ne réussis à envoyer qu'en texte.

Merci bcp pour votre aide.

Page form.htm
<html>
<head>
<title>Formulaire</title>
</head>

<form method= "POST" action="form.php" name="submitform" onsubmit="return Test();">

<center>
       ----

     Nom :,
     ,
    
    ----

     e-mail,
     ,
    
    ----

          Laissez vos commentaires ici :

     <textarea name="custom_message" rows="7" cols="48"></textarea>
     ,
    
    ----

          ,
    
   

   </form>
  </center>

</html>

Et voilà le code php donc, form.php:
<html>
  <head>
    <title>Confirmation d'un ajout</title>
  </head>

  <?php
    // Ligne SQL d'entrée des données du formulaire de la page d'avant (form.htm)
    $nom = $_POST['nom']; 
    $mail = $_POST['email'];
    $message = $_POST['custom_message'];
    $sender_email = [mailto:'email@domaine 'email@domaine];
    
    //preparation de l'email
    $msg = "Bonjour ".$nom.",

Merci d'avoir soumis ce formulaire. Voici les informations votre récap. \n";
    $msg .= "Votre nom: ".$nom."
\n";
    $msg . = "email de contact: ".$mail."
\n";
    $msg .= "Votre message: ".$message."
\n";


$recipient = $mail;
$subject = "Information formulaire";


$mailheaders = "From: www.bliblibli-blablabla<> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";
//SI jamais rerajoute $mailheaders.= "Bcc: $sender_email\n\n"; Cela ne marche pas! L'adresse aparaît sur l'email (sur le corps)

mail($recipient, $subject, $msg, $mailheaders);
   
    // Message de confirmation de l'ajout :
    echo( "Nom: ".$nom."
\n" ) ;
    echo( "email de contact: ".$mail."
\n" ) ;
    echo( "Your message: ".$message."
\n" ) ;
  ?>
 
    Un email vous a été adressé avec toutes vos informations
 



</html>

3 réponses

taxitat Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 18 mars 2009 1
3 mars 2008 à 16:57
Une 2e question peut être plus intéressante qui me vient à la tête...

Si je n'apporte aucune modification au php (et je réussi à m'envoyer une copie du formulaire), tant que je fais actualiser et puis "recommencer" cela m'enverra chaque fois le même email. Donc, je ne voudrais pas me faire saboter ma boîte mail par un vilain petit robot. Est-ce qu'une solution existe?

Est-ce envisageable que si j'enregistre l'adresse IP du "client", je ne puisse recevoir qu'un formulaire (ou un maximum de 5 formulaires, par exemple) de cette même personne? Ou est-ce qu'un bon hacker peut aussi contourner ceci?

Merci pour votre aide.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
4 mars 2008 à 21:38
Hello,

regarde du côté de "envoyer mail php" sur google, tu verras que tu peux te rajouter en copie invisible. et mettre en html.

pour ce qui est de l'envoi, et bien tu peux passer par une session php : tu crées une variable qd le formulaire est envoyé, et si elle existe déjà c'est qu'un message a déjà été envoyé et tu n'autorises pas.

cf php.net et google.
à+
0
taxitat Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 18 mars 2009 1
5 mars 2008 à 10:05
Merci pour ta réponse. Je pense avoir solutioné le problème (ou presque). J'ignore pour quelle raison, les deux dernières lignes de mailheader étaient écrites sur le mail. J'ai changé le \n\n par \r\n et ça a l'air de marcher... Je vais me renseigner sur l'utilité de ceci car je crois que bcp de gens l'utilisent sans savoir vraiment à quoi ça sert (comme moi, lol!)


Voilà comment j'ai arrangé mon code:

 $mailheaders = "From: www.blabla<> \r\n";
 $mailheaders .= "Reply-To: $sender_email \r\n";
 $mailheaders .= "Bcc: $bcc \r\n";
 $mailheaders .= "Content-Type: text/html; charset=iso-8859-1 \r\n";

En fait, comme en bcc je voulais envoyer à 2 emails, j'ai crée
$bcc = 'email1, email2';

et ça a l'air de marcher à present...

J'espère que cela sera d'utilité à qqun car étant novice, j'ai un peu galeré. Après coup, je trouve quand même assez facile.
0
Rejoignez-nous