2017-01-02 1 views
1

J'ai un formulaire en format html et j'essaie d'obtenir un email sur mon compte gmail lorsque l'utilisateur remplit le formulaire et le soumet. Mon site Web fonctionne sur le serveur pas sur l'hôte local. Mon code n'a aucune erreur mais n'obtenant toujours pas l'email. Je ne sais pas pourquoi? Quelqu'un peut-il me donner un exemple de code ou me dire ce que je fais mal? .. Merci à l'avance ... Voici mon codeEnvoyer un e-mail depuis le serveur PHP

<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php"> 
    <div class="row wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms"> 
     <div class="col-sm-6"> 
     <div class="form-group"> 
      <input type="text" name="name" class="form-control" placeholder="Name" required="required"> 
     </div> 
     </div> 
     <div class="col-sm-6"> 
     <div class="form-group"> 
      <input type="email" name="email" class="form-control" placeholder="Email Address" required="required"> 
     </div> 
     </div> 
    </div> 
    <div class="form-group"> 
     <input type="text" name="subject" class="form-control" placeholder="Subject" required="required"> 
    </div> 
    <div class="form-group"> 
     <textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea> 
    </div>       
    <div class="form-group"> 
     <button type="submit" class="btn-submit">Send Now</button> 
    </div> 
</form> 

Et le sendemail.php est

<?php 
$name = @trim(stripslashes($_POST['name'])); 
$from  = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 
$to   = '[email protected]'; 

$headers = array(); 
$headers[] = "MIME-Version: 1.0"; 
$headers[] = "Content-type: text/plain; charset=iso-8859-1"; 
$headers[] = "From: {$name} <{$from}>"; 
$headers[] = "Reply-To: <{$from}>"; 
$headers[] = "Subject: {$subject}"; 
$headers[] = "X-Mailer: PHP/".phpversion(); 

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

die; 
+0

Quelle est la sortie de 'var_dump (courrier ($ à, $ subject, $ message, $ headers));' –

+0

Est-ce que le travail de courrier? Essayez 'mail ('[email protected] ',' test ',' test ');' - [Brucie Alpha] (http://stackoverflow.com/users/5380431/brucie-alpha) –

+0

Vous êtes connecté à un serveur de messagerie non? Quel est l'hôte que vous utilisez? – Ruby

Répondre

1

Selon les documentation:

multiples en-têtes supplémentaires doivent être séparés avec un CRLF (\ r \ n).

donc votre fichier php doit être comme:

<?php 
$name = @trim(stripslashes($_POST['name'])); 
$from = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 
$to = '[email protected]'; 

$headers = "MIME-Version: 1.0" . "\r\n" . 
     "Content-type: text/plain; charset=iso-8859-1" . "\r\n" . 
     "From: {$name} <{$from}>" . "\r\n" . 
     "Reply-To: <{$from}>" . "\r\n" . 
     "Subject: {$subject}" . "\r\n" . 
     "X-Mailer: PHP/" . phpversion(); 

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

die; 
?>