Envoie de mail

saf@1 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
saf@1 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'aimerai que vous aidier à resoudre un blêm d'envoie de mail. voici la l'erreur:<Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\3KG\controller\Ctrocontact.php on line 90> et voici mon code PHP5...

<?php   
    function chargerclasse($classe)
    {
        require ('model/class/'. $classe . '.php');
    }

 spl_autoload_register('chargerclasse'); // fonction d'auto chargement de classe.   

//instanciation des managers
 $man=new ContactManager($bdd);

 if(isset($_POST['btn_envoyer']) && $_POST['btn_envoyer']=="Envoyer" )
{

      $destinataire='3k.groupe@gmail.com';
      $sujet='Bonjour';
      $nom      = htmlspecialchars($_POST['nom']);
      $email    = htmlspecialchars($_POST['email']);
      $tel      = htmlspecialchars($_POST['tel']);
      $message  = htmlspecialchars($_POST['message']);
      trim($nom);
      trim($email);
      trim($tel);
      trim($message);
      trim($sujet);

    $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    $regex_head = '/[\n\r]/';

      if(empty($nom)  
           || empty($email)  
           || empty($message))
         {
             $alert = 'Les trois champs (Nom , E_mail , Commantaire ) doivent être renseignés';
             echo "$alert";
         }
             /* On vérifie que le format de l'e-mail est correct */
         elseif (!preg_match($regex_mail, $email))
          {
            $alert = 'L\'adresse '.$email.' n\'est pas valide';
            echo "$alert";
          }
            /* On vérifie qu'il n'y a aucun header dans les champs */
         elseif (preg_match($regex_head, $email) || preg_match($regex_head, $nom) || preg_match($regex_head, $message) || preg_match($regex_head, $tel) )
          {
           $alert = 'En-têtes interdites dans les champs du formulaire';
           echo "$alert";
          }

if (!isset($_COOKIE['sent']))
    {
$messagemail = '<html>
<head>
<title>'.$sujet.'</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
body
{
width: 1024px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
#logo
{
width: 300px;
height: 110px;
background-image: url("[http://www.divriabidjan.com] /images/logo.jpg");
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div id="en _ tete">
</div>
<div id="corps">
<p>
  <h3 class="titre">'.$sujet.'</h3>
  '.$message.'<br/> Merci à vous.
</p>
</div>
</body>
</html>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'De: « l\'auteur » <'.$nom.'> , Tel:<'.$tel.'>' . "\r\n";
if(mail($destinataire, $sujet , $messagemail, $headers))
      {
     echo  '<script language="javascript"> alert("E-mail envoyé avec succès !") </script>';  
                //redirection
     echo  '<script language="javascript">document.location.href="index.php?page=Ctrocontact" </script>';
              /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de 


* renvoyer un mail en rafraichissant la page */
            setcookie("sent", "1", time() + 120);
            /* On détruit la variable $_POST */
            unset($_POST);
    }
  else
      {
         echo  '<script language="javascript"> alert("Echec d\'envoi, réessayez SVP !") </script>';
      }
 }
  else
    {
     header('Location: [http://www.3kgroupesarl.ci/index.php?page=Ctrocontact http://www.3kgroupesarl.ci/index.php?page=Ctrocontact');|nofollow]
    }
}
include(dirname(__FILE__).'/../view/VContact.php');
?>






EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Vu le message d'erreur :
 Failed to connect to mailserver at "localhost" port 25,

Il semble que tu travailles en LOCAL sur ton ordi ..... (via un logiciel comme WAMP, EasyPHP, XAMPP ..... )
Et donc... pour que ça puisse fonctionner... il faut que tu paramétres dans le php.ini le SMTP de la messagerie à utiliser.


Une autre possibilité serait de passer par la class PHPMAILER ( le téléchargement et des exemples sont disponibles sur le net). Cela te permettrait de passer par ta boite mail gmail, live.. ou autre.


0
saf@1 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton aide et que php évolu.
0