2013-03-09 99 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(); 
} 
相关问题