有人可以在这段代码PHP电子邮件中找到错误的地方

时间:2013-04-11 05:28:21

标签: php forms email contact

我没有收到邮件mail@example.com上的邮件。下面是我的表单代码和send-mail.php代码。任何人都可以帮助我这一切因为一切似乎工作得很好,我没有收到任何电子邮件。我使用localhost作为服务器。

联系表格:

<form id="contactForm" action="#" method="post">
<p>Email us by filling in the form below. Make sure you fill in the message and all fields.</p>
<fieldset>
<div>
<input name="name"  id="name" type="text" class="form-poshytip" title="Enter your name" />
<label>Name</label>
</div>
<div>

<input name="web"  id="web" type="text" class="form-poshytip" title="Enter your surname" />
                                     <label>Surname</label>
</div>
<div>
<input name="email"  id="email" type="text" class="form-poshytip" title="Enter your email address" />
                                    <label>Email</label>
</div>

<div>
<textarea  name="comments"  id="comments" rows="5" cols="20" class="form-poshytip" title="Enter your comments"></textarea>
</div>

<!-- send mail configuration -->
<input type="hidden" value="mail@example.com" name="to" id="to" />
<input type="hidden" value="Enter the subject here" name="subject" id="subject" />
<input type="hidden" value="send-mail.php" name="sendMailUrl" id="sendMailUrl" />
<!-- ENDS send mail configuration -->

<p><input type="button" value="Send" name="submit" id="submit" /> <span id="error" class="warning">Message</span></p>
</fieldset>

</form>
<p id="sent-form-msg" class="success">Form data sent. Thanks for your feedback.</p>
<!-- ENDS form -->

这是send-mail.php

<?php
//vars
$subject = $_POST['subject'];
$to = explode(',', $_POST['to'] );

$from = $_POST['mail@example.com'];

//data
$msg = "NAME: "  .$_POST['name']    ."<br>\n";
$msg .= "EMAIL: "  .$_POST['email']    ."<br>\n";
$msg .= "WEBSITE: "  .$_POST['web']    ."<br>\n";
$msg .= "COMMENTS: "  .$_POST['comments']    ."<br>\n";

//Headers
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: <".$from. ">" ;


//send for each mail
foreach($to as $mail){
mail($mail, $subject, $msg, $headers);
}

?>

3 个答案:

答案 0 :(得分:1)

$_POST['subject'];

$_POST['to'];

$_POST['myemail@gmail.com'];

$_POST['name'];

$_POST['email'];

$_POST['web'];

$_POST['comments'];

我没有在您的表单中找到任何这些元素。这就是为什么没有发生任何事情的原因。试试

echo '<pre>';
print_r($_POST);

这将在提交表单时为您提供已发布的数组。

答案 1 :(得分:0)

我有一些建议。如果您将“地址”保留为隐藏在表单中,那么为什么你不能直接将它保存在sendmail函数中,并且在$中你试图保留

<?php
$to="kurtfarrugia92@gmail.com";
$from =$_POST['field_name']; 
// not the mail id because i didn't see any field with name as "kurtfarrugia92@gmail.com"
?>

答案 2 :(得分:0)

您无法使用此功能从localhost发送邮件。我不确定,但你应该尝试PHP mailer来完成这项任务。