[php] entete de mail

Résolu
Bonjour,
j'ai un formulaire qui envoie un mail en passant par un fichier contact.php qui tourne bien. Lorsque je suis chez Free.fr ou Ovh, le mail que je recois porte l'entete de mon compte chez le Fai, c'est ok.

Le problème : Je suis hebergé maintenant chez 1and1.fr et là quand je recois un mail provenant du formulaire, le champ "De :" contient "CGI-Mailer". Le support de l'hebergeur me dit qu'il faut modifier une variable dans la fonction mail mais sans me dire laquelle....

Code:
<?php

$votre_societe=$_POST['Name'];
$votre_nom=$_POST['Name1'];
$mail=$_POST['Email'];
$votre_message=$_POST['Comment'];

$recipient_email='contact@imagitem.com';

$subject = "Suite à la visite sur le site ";
$headers = "From " . $votre_nom;
$headers = 'Content-type: text/html; charset=iso-8859-1';

//$content ="<html><head><title> Contact commercial</title></head><body><br>";
$content .="Monsieur ou Madame : <b>" . $votre_nom ."</b><br>";
$content .="de la societé : <b>" . $votre_societe ."</b><br>";
$content .="Email : <b>" . $mail ."</b><br><hr><br>";
$content .= $votre_message;
$content .="<br></body></html>";

mail($recipient_email,$subject,$content,$headers);
?>

Help

Didier

11 réponses

  1. Bonjour,
    C'est le champs 'FROM'. Dans ton script, il manque un tout petit truc. Ta variable $header ne contient que content-type.

    $headers = "From " . $votre_nom;
    $headers .= 'Content-type: text/html; charset=iso-8859-1';
    2
    1. Le "." dans le deuxieme $header ! :)
      1
      1. Bonjour ,

        C'est juste qu'après ton "From ...." t'as oublié les 2 points , ce qui donne:

        "From : emetteur"

        DE PLUS, en fin d'une ligne header, ill te faut rajouter un saut de ligne, à savoir:
        "\n" ou "\r" ou "\n\r" l'un des 3.

        Exemple:
        $headers = "From :" . $votre_nom."\n";
        $headers = 'Content-type: text/html; charset=iso-8859-1'."\n";

        ;o)
        1
        1. Salut salut,...
          Je poste sur ce sujet parce que ça correspond assez.

          J'ai fais un formulaire d'envoi de mail en PHP, le problème c'est qu'il ne m'affiche pas
          correctement les caractères accentués. J'ai déjà testé beaucoup de choses entre
          UTF-8 et ISO-8859-1 mais rien à faire. Je suis bien paumé là.

          Voilà ce que j'ai :

          $message = $_POST[txtmsg]."\n\n\nEnvoyé par : \n\n".$_POST[nom]." ".$_POST[prenom]."\n".$_POST[adresse]."\n".$_POST[ville]."\n".$_POST[phone]." " ;
                                                 
              $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
              $headers = "From: ".$from."\n" ;
              $headers.= "Reply-To: ".$from."\n" ;
              $headers.= "X-Mailer: PHP/".phpversion()."\n" ;
          
          0
        2. passe en utf 8
          0
      2. tu as essayé charset=iso-8859-15 ?
        1
        1. Merci, j'ai trouvé ca au fin fond de la page :

          $to = 'bob@barnyard.com';
          $subject = 'Wakeup bob!';
          $message = '<b>yo</b>, whassup?';
          $headers = "From: server@barnyard.com\r\n" .
          'X-Mailer: PHP/' . phpversion() . "\r\n" .
          "MIME-Version: 1.0\r\n" .
          "Content-Type: text/html; charset=utf-8\r\n" .
          "Content-Transfer-Encoding: 8bit\r\n\r\n";

          // Send
          mail($to, $subject, $message, $headers);

          Une fois adapté, ca marche !!!

          MErci, @+
          0
          1. Salut

            Des specialistes des emails ?

            J'ai une question: des guguss ou des pi'ates s'inscrivent sur mon forum avec un login de style email ex: login georgette@toto.fr avec pour adresse mail la même.

            Résultat nous recevons sur tous les comptes des forumeurs des emails non demandes avec l'adresse du forum, a part le bannissement que puis je faire ?

            Merci du coups de main
            0
            1. "Content-Type: text/html; charset=utf-8\r\n" .
              "Content-Transfer-Encoding: 8bit\r\n\r\n";

              ça choque personne depuis plus d'un an...
              0
              1. Pourquoi...?
                0
              2. ?
                0
            2. Désolé de détérré le sujet mais j'ai un probleme:

              - si je ne met pas le headers tout est nickel, sauf le "De:" avec ce fameux CGI
              - si je met le headers, j'ai donc le "De:" que je veux, seulement le message n'est plus composer comme je le souhaiterais.

              En gros:

              -si je ne met pas le headers, le message que je recoit est composé de tel sorte:
              Formulaire de contact venant de www.xxx.com
              Nom: Dupont
              Prénom: Toto
              Ville: Paris
              - si je met le headers, le message s'envoie comme ci-dessous:
              Formulaire de contact venant de www.xxx.com Nom: Dupont Prénom: Toto Ville: Paris

              Voila si quelqu'un peut m'aider parce que vraiment la j'ai du mal
              0
              1. Merci Oberion mais je ne saisi pas ta réponse....

                Quel est ce petit truc qui manque ?

                Merci d'avance
                -1
                1. ok merci, j'ai essayé :

                  Voilà ce que je recois dans le corps du mail :

                  From totoContent-type: text/html; charset=iso-8859-1

                  :-((

                  et j'ai tjrs "Cgi-Mailer" en entete "de :"
                  -1