2016-11-16 114 views
0

我試圖從HTML表單發送消息。但由於某種原因,我沒有得到任何東西。有人可以幫我嗎?如何使用php和html發送電子郵件

這裏是我的HTML表單:

<form method="post" action="subb.php"> 
    <div class="field half first"> 
     <label for="Name">Name</label> 
     <input type="text" name="Name" id="name" /> 
    </div> 
    <div class="field half"> 
     <label for="Email">Email</label> 
     <input type="text" name="Email" id="email" /> 
    </div> 
    <div class="field"> 
     <label for="Message">Message</label> 
     <textarea name="Message" id="message" rows="5"></textarea> 
    </div> 
    <ul class="actions"> 
     <button type "submit" name="submit" id="submit" class="button submit">Send message</button> 

和PHP:

<?php 
    $Name = $_POST['Name']; 
    $Email = $_POST['Email']; 
    $Message = $_POST['Message']; 

    $to = "[email protected]"; 
    $subject="new message"; 

    mail($to , $subject , $Message, "From :" . $Name . $Email); 

    echo "Your message has been Sent"; 
?> 

我有一個名爲PHP文件subb.php並在同一目錄中列出他們兩個,但它仍然沒有工作了一段原因。很感謝任何形式的幫助。

+0

在'subb.php'如果你w可以在'mail'之前做'exit(print_r($ _POST,true))'你看到預期的數據嗎? – RamRaider

+0

我想你有一個提交按鈕? –

+0

'

回答

0
<?php 

$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone'];; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 

$to  = '[email protected]'; 
$subject = 'Message From Website'; 
$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

$themessage = "Name: ".$name."</br>Email: ".$email."</br>Phone: ". 
      $phone."</br>Subject: ".$subject. 
      "</br>Message: ".$message; 
//echo $themessage; 


if(mail($to, $subject, $themessage, $headers)){ 
echo "message sent"; 
header('Location: http://www.fullertoncomputerepairwebdesign.com/contactus.php?smresponse=Message Sent') ; 
}else{ 
echo "we have a error charlie!"; 
} 
; 

測試一下,如果它不工作,這意味着您的主機塊郵件功能。

+0

我不確定這會有什麼幫助 - 如果它發送一封電子郵件OP將如何知道? – RamRaider

+0

郵件返回True或False,所以如果($ mail){echo「OMG IS WORKED」} else {echo「Error!」); –

+0

我通常會使用標題調用重定向,並讓頁面抓取錯誤並在窗體上顯示。 Add to code for you –

1

的東西在你的代碼是錯誤的mail($to , $subject , $Message, "From :" . $Name . $Email);

Mail函數語法:

mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

所以,

<?php 
if(isset($_POST['submit'])) { 
    $Name = $_POST['Name']; 
    $Email = $_POST['Email']; 

    $Message = "Name : ".$Name."<br />" 
    $Message .= $_POST['Message']; 

    $to = "[email protected]"; 
    $subject="new message"; 

    // To send HTML mail, the Content-type header must be set 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

    // Additional headers 
    $headers .= 'To: Name <$to>' . "\r\n"; 
    $headers .= 'From: $Name <$Email>' . "\r\n"; 
    $headers .= 'Cc: [email protected]' . "\r\n"; 
    $headers .= 'Bcc: [email protected]' . "\r\n"; 


    if(mail($to, $subject, $Message, $headers)) { 
     echo "Your message has been Sent"; 
    } else { 
     echo "Mesage Error"; 
    } 
} 
?> 

注意:使用任何郵件庫,用於防止脆弱的頭注入像PHPMailer

+0

您的代碼易受頭部注入的影響。 – PeeHaa

+1

1)使用合適的郵件庫2)? 3)? 4)利潤 – PeeHaa