2017-03-28 86 views
0

我一直在研究這個問題一段時間,而且對於PHP來說還是比較新的。我無法將其發送。這個代碼的第二雙眼睛將是最有幫助的:HTML/PHP從表單發送電子郵件

<?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> 

非常感謝!

+0

你得到了什麼錯誤?代碼是否進入條件?你可以用硬編碼的值成功地運行單線郵件()調用嗎? – mkaatman

+1

在本地服務器上,PHP郵件功能不起作用,但您可以使用PhpMailer(https://github.com/PHPMailer/PHPMailer)。 –

+0

我在代碼中看不到任何錯誤。你得到什麼錯誤?也作爲@mkaatman moentioned,你可以用簡單的郵件()函數在不同的頁面上發送電子郵件嗎? –

回答

0

在第二郵件功能的代碼參數不會完成你沒有定義subject2的價值,我認爲你的第一條消息以正確的方式發送,但第二個將不

1

我會建議使用PHPMailer的。它是GitHub上的一個開源項目:PHPMailer - GitHub

該類允許您利用最着名的郵件平臺的SMTP服務來獲得使用PHP發送郵件的快速系統。
這是非常簡單的建立一個代碼與此類,從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>"; 
} 
} 
?> 

正如你可以在PHP代碼中看到的,我使用Gmail SMTP服務發送此郵件。請注意,如果您想使用其他服務,則必須更改SMTP服務器。
此外,您需要登錄到您的電子郵件服務才能訪問SMTP服務,而且您經常需要通過第三方應用程序訪問您的郵件帳戶。
在某些情況下,SMTP服務器將不接受TLS或SSL加密。


是否可以添加附件添加 enctype="multipart/data"屬性到您的 form標記並通過 $_FILES陣列獲取上傳的文件。
我希望這會幫助你!