Page 1 sur 1

Aide : lce code php ne marche pas

Posté : 31 août 2015, 16:45
par ferre
Bonsoir j'ai fait un formulaire afin de recevoir les messages des visiteur de mon site mais le code ne marche, quand je teste je ne reçoit rien . Est ce que le code est correct?
<?php 

      $succes= null;
	  $echec= null;

    if(isset($_POST['envoyer'])){
	
	 $titre = htmlentities($_POST['titre']);
	 $msg = htmlentities($_POST['msg']);

	
	 
	 $erreur = array();
	 
	 if(empty($titre)){
		$erreur['titre'] = 'Veuillez saisir un titre';	 
	}
	
	if(empty($msg)){
		
		$erreur['msg'] = 'Veuillez saisir un  message';	 
	}
	
		// envoi de mail
		$destinataire = "[email protected]";
		$sujet='Nouveau message';
		$message = 'Titre: '.$_POST['titre'].' \r\n';
		$message .= 'Message: '.$_POST['msg'].' \r\n';
		$headers = 'Content-type: text/html; charset=utf-8';
       
      
        if (mail($destinataire,$sujet,$message, $headers))
        {
            $succes = " Message envoyé";
			
        }
        else
        {
            $echec = " Echec lors de l'envoi du message.";
        }

}
?>

Re: Aide : lce code php ne marche pas

Posté : 31 août 2015, 18:13
par soleil12345
voila
<?php 

      $succes= null;
    $echec= null;

    if(isset($_POST['envoyer'])){
  
   $titre = htmlentities($_POST['titre']);
   $msg = htmlentities($_POST['msg']);

  
   
   $erreur = array();
   
   if(empty($titre)){
    $erreur['titre'] = 'Veuillez saisir un titre';	 
  }
  
  if(empty($msg)){
    
    $erreur['msg'] = 'Veuillez saisir un  message';	 
  }
  
    // envoi de mail
    $to = "[email protected]";
	$from="ici nom prenom ou ton email"
    $subj='Nouveau message';
    $message = 'Titre: '.$_POST['titre'].' \r\n';
    $message .= 'Message: '.$_POST['msg'].' \r\n';
   
       
      
        if (mail_to($to, $from, $subj, $message))
        {
            $succes = " Message envoyé";
      
        }
        else
        {
            $echec = " Echec lors de l'envoi du message.";
        }

}

function mail_to($to, $from, $subj, $message, $files=null){
$boundary = md5(uniqid(time()));
$headers[] ="MIME-Version: 1.0";
$headers[] ="Content-Type: multipart/mixed;boundary=\"$boundary\"; type=\"text/html;\"";
$headers[] ="From: ".$from;
$headers[] ="Reply-To: ".$from;
$headers[] ="Return-Path: ".$from;
$headers[] ="X-Mailer: PHP/" . phpversion();
$multipart[]= "--".$boundary;
$multipart[]= "Content-Type: text/html; charset=UTF-8";
$multipart[]= "Content-Transfer-Encoding: Quot-Printed";
$multipart[]= ""; 
$multipart[]= $message;
$multipart[]= "";
$multipart[]= "--$boundary--";
$multipart[]= "";
$headers=implode("\r\n", $headers);
$multipart=implode("\r\n", $multipart);
return mail($to, $subj, $multipart, $headers);
}
?>

Re: Aide : lce code php ne marche pas

Posté : 31 août 2015, 19:05
par ferre
slt merci pour ton aide, peux tu m'expliquer ton code, je ne comprends pas

Re: Aide : lce code php ne marche pas

Posté : 31 août 2015, 19:24
par soleil12345
voici les standarts pour envoyer emails (en anglais)
https://tools.ietf.org/html/rfc4021

Re: Aide : lce code php ne marche pas

Posté : 31 août 2015, 21:10
par @rthur
voici les standarts pour envoyer emails (en anglais)
https://tools.ietf.org/html/rfc4021
Bonjour soleil12345,

Pourquoi envoyer un e-mail texte en HTML ???

Et je ne suis pas sûr que de renvoyer sur la RFC soit vraiment la chose la plus pertinente pour comprendre pourquoi l'usage de la fonction d'envoi de mail de PHP ne fonctionne pas...

Bonsoir j'ai fait un formulaire afin de recevoir les messages des visiteur de mon site mais le code ne marche, quand je teste je ne reçoit rien . Est ce que le code est correct?
As tu un message d'erreur ?
Tu as testé son code chez un hébergeur ou en local sur ton PC ?
Si c'est en local, c'est normal que ça ne fonctionne pas car tu n'as probablement pas de serveur e-mail configuré sur ton ordi.