2017-03-28 6 views
0

Je travaille sur ce sujet depuis un certain temps et je suis assez nouveau pour php. J'ai du mal à envoyer ça. Une deuxième série d'yeux sur ce code serait très utile:HTML/PHP pour envoyer un e-mail à partir du formulaire

<?php 
    if(isset($_POST['submit'])){ 
     $to = "myEmail"; // this is your Email address 
     $from = $_POST['emailAddress']; // this is the sender's Email address 
     $fullName = $_POST['fullName']; 
     $subject = "Form submission"; 
     $message = $fullName . " wrote the following:" . "\n\n" . $_POST['comment']; 
     $message2 = "Here is a copy of your message " . $fullName . "\n\n" . $_POST['comment']; 

     $headers = "From:" . $from; 
     $headers2 = "From:" . $to; 
     mail($to,$subject,$message,$headers); 
     mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender 
     echo "Mail Sent. Thank you " . $fullName . ", we will contact you shortly."; 
     // You can also use header('Location: thank_you.php'); to redirect to another page. 
    } 
?> 


<form method="post" action="contact.php"> 
    <div class="form-group"> 

     <label for="fullName">Name</label> 
     <input type="text" class="form-control" id="fullName" name="fullName" placeholder="Jane Doe"> 

     <label for="emailAddress">Email</label> 
     <input type="email" class="form-control" id="emailAddress" name="emailAddress" placeholder="[email protected]"> 

     <label for="comment">Comment</label> 
     <textarea class="form-control" rows="3" name="comment" placeholder="Comment"></textarea> 

     <button name="submit" type="submit" class="btn">Submit</button> 

    </div> 
</form> 

Un grand merci!

+0

Quelles sont les erreurs? Est-ce que le code entre dans le conditionnel? Pouvez-vous exécuter avec succès un appel mail() à une ligne avec des valeurs codées en dur? – mkaatman

+1

Sur un serveur local, la fonction de messagerie PHP ne fonctionnera pas, mais vous pouvez utiliser PhpMailer (https://github.com/PHPMailer/PHPMailer). –

+0

Je ne vois rien de mal dans le code. quelle erreur obtenez-vous? aussi comme @mkaatman moentioned, pouvez-vous envoyer un courriel juste avec la fonction mail() sur une autre page? –

Répondre

0

Dans vos paramètres de code de deuxième fonction de messagerie ne sont pas terminés, vous ne je pense pas définir la valeur de sujet2 votre premier message envoyer la bonne manière, mais le second ne sera pas

1

Je suggère d'utiliser PHPMailer. C'est un projet open-source disponible sur GitHub: PHPMailer - GitHub

Cette classe vous permet d'exploiter les services SMTP de la plate-forme de messagerie la plus célèbre pour obtenir un système rapide pour envoyer du courrier en utilisant PHP.
Il est très simple à mettre en place un code avec cette classe, à partir d'un formulaire HTML:

<!DOCTYPE html> 
<html> 
<body> 
<form method="post"> 
<input type="email" name="from" placeholder="From"> 
<input type="email" name="to" placeholder="To"> 
<input type="text" name="subject" placeholder="Subject"> 
<textearea name="content"></textarea> 
</form> 
</body> 
</html> 

<?php 
require_once('PHPMailer_5.2.4\class.phpmailer.php'); 

if(isset($_POST["submit"])){ 
$username = 'YOUR_GMAIL_ACCOUNT'; 
$password = 'YOUR_ACCOUNT_PASSWORD'; 
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'ssl'; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 465; 
//$mail->addAttachment($_FILES["image"]["name"]); 
$mail->IsHTML(true); 
$mail->Username = $username; 
$mail->Password = $password; 
$mail->SetFrom($_POST["from"]); 
$mail->Subject = $_POST["subject"]; 
$mail->Body = $_POST["content"]; 
$mail->AddAddress($to); 

if(!$mail->Send()) 
{ 
    echo "Mailer error : " . $mail->ErrorInfo . "<br>"; 
} 
} 
?> 

Comme vous pouvez le voir dans le code PHP, je suis en utilisant le service SMTP Gmail pour envoyer ce courrier. Notez que si vous voulez utiliser d'autres services, vous devez changer le serveur SMTP.
En outre, vous devez vous connecter à votre service de messagerie pour accéder au service SMTP, et vous avez souvent besoin d'activer la possibilité d'accéder à votre compte de messagerie par des applications tierces.
Dans certains cas, le serveur SMTP n'acceptera pas le cryptage TLS ou SSL.


Est-il possible d'ajouter une pièce jointe en ajoutant l'attribut enctype="multipart/data" à votre balise form et en obtenant le fichier téléchargé via la baie $_FILES. J'espère que cela va vous aider!