2013-03-09 95 views
0

你好,我正在發送一個問題,我的表單發送到電子郵件。我創建了一個表單,將值發送到我的emal,當按下時發送按鈕它告訴我,該消息被髮送,但我不能看到我的雅虎或Gmail郵件,我收到什麼都沒有...將表單的值發送到電子郵件

這裏是我的形式PHP代碼:

<?php 
$ToEmail = '[email protected]'; 
$EmailSubject = 'Site contact form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Name: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 

<?php 
if ($_POST["email"]<>'') { 
$ToEmail = '[email protected]'; 
$EmailSubject = 'Site contact form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Name: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
    Your message was sent 
     <?php 
    } else { 
    ?> 
    <form action="test.php" method="post"> 
    <table width="400" border="0" cellspacing="2" cellpadding="0"> 
    <tr> 
    <td width="29%" class="bodytext">Your name:</td> 
    <td width="71%"><input name="name" type="text" id="name" size="32"></td> 
    </tr> 
    <tr> 
    <td class="bodytext">Email address:</td> 
    <td><input name="email" type="text" id="email" size="32"></td> 
    </tr> 
     <tr> 
    <td class="bodytext">Comment:</td> 
     <td><textarea name="comment" cols="45" rows="6" id="comment" 
    class="bodytext">  
    </textarea></td> 
    </tr> 
    <tr> 
    <td class="bodytext"> </td> 
    <td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td> 
    </tr> 
     </table> 
    </form> 
<?php 
    }; 
    ?> 
+1

你應該檢查你的垃圾郵件部分。郵件直接從應用程序發送到垃圾郵件登錄 – Michael 2013-03-09 17:02:18

+0

我檢查它是空的 – serii 2013-03-09 17:05:48

+0

除了其他內容,您應該將if語句更改爲:if(isset($ _ POST [「email」])){ – 2013-03-09 17:07:19

回答

0

你可能不會在你的php.ini樹立正確的SMTP設置。無論如何,我建議使用mail()以外的東西,因爲它更可能是可靠的。改爲嘗試類似this

要麼這樣,要麼只是落在垃圾郵件文件夾中。

+0

[郵件功能] ;僅適用於Win32。 ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 – serii 2013-03-09 17:08:10

+0

這裏是我的smtp配置 – serii 2013-03-09 17:08:48

0

你是從Linux發送它?如果是,請檢查/var/log/mail.err並查看SMTP是否引發任何錯誤。

對於Windows,可能需要安裝一個SMTP服務器,像水星SMTP

+0

我使用的是windows – serii 2013-03-09 17:09:43

+0

嘗試使用Mercury SMTP。我並不是很熟悉Windows環境,但這應該可以完成這項工作。 官方網站:http://www.pmail.com/ – 2013-03-09 17:11:30

0

你有沒有使用PHP Mailer Class?

下面的例子是,提交給自己在同一頁上的表單只是粘貼如下考慮在聯繫頁面的最頂端。下載幷包括你的課程。

require_once('class.phpmailer.php'); 
$address = "[email protected]"; 
$name = htmlspecialchars($_POST['name']); 
$email = htmlspecialchars($_POST['email']); 
$subject = htmlspecialchars($_POST['subject']); 
$comment = htmlspecialchars($_POST['comment']); 

$mail = new PHPMailer(); // defaults to using php "mail()" 
$body = $comment; 
$mail->AddReplyTo($email,$name); 
$mail->SetFrom($email,$name); 
$mail->AddReplyTo($email,$name); 
$mail->AddAddress($address, "Your Name"); 
$mail->Subject = $subject; 
$mail->MsgHTML($body); 
if(isset($_POST['submit'])) 
{ 
$mail->Send(); 
} 
相關問題