发送邮件的表单不发送

时间:2011-05-12 16:17:26

标签: php javascript email sendmail

我有一个“告诉朋友”弹出式电子邮件表单,允许用户使用他们输入的电子邮件地址共享我的页面。它弹出很好,但我无法通过表单发送电子邮件。

HTML:

<div id="tellfriend">
      <a href="#close">Close</a>

      <form id='tellafriend_form' method="post" action="#sendMessage" name="tellafriend_form">

        <label for="name">Your Name:</label>
        <input type="text" id="name" name="name" />

        <label for="to">Friend's email:</label> 
        <input type="text" id="to" name="to" /> 

        <label for="subject">Subject:</label>
        <input type="text" id="subject" name="subject" /> 

        <label for="message">Message:</label> 
        <textarea id="message" name="message"></textarea>
        <input type="submit" name="submit" value="Submit">

      </form>

</div><!-- #tellfriend -->

处理“弹出”的javascript:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> 
<script>
$(function() {
    $('#tellfriend').hide();
    $('#sendMessage').click(function(e) {
        $("#tellfriend").fadeToggle('fast');
    });

});
</script>

应该发送邮件的php:

<?
if (isset($_POST['Submit'])) {
// This will check to see if the form has been submitted
$senders_name = $_POST['name'];
// The person who is submitting the form
$recipient_friend = $_POST['to'];
// The forms recipient
$subject = $_POST['subject'];
// The subject line
$message = $_POST['message'];
// The message being sent
mail($recipient_friend, "From $senders_name", $subject, $message);

if (isset($_POST['your_email'])) {
echo "<br>Your friend has been contacted <br><br>Thank you $senders_name";
}}
?>

免责声明:PHP新手,希望学习。谢谢!

3 个答案:

答案 0 :(得分:1)

邮件功能中参数的顺序不正确。见this

应该是

mail($recipient_friend, $subject, $message);

如果您想使用标题,请执行此操作

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";    
$headers .= 'To: '.$recipient_friend.' <'.$recipient_friend.'>' . "\r\n";    
$headers .= 'From: '.$sender.' <'.$senderEM.'>' . "\r\n";    

然后像这样打电话

mail($recipient_friend, $subject, $message, $headers);

答案 1 :(得分:0)

您的PHP代码中有一个错误:

if (isset($_POST['Submit'])) {

应该是:

if (isset($_POST['submit'])) {

小写“s”。

确实,您提交按钮的名称是“提交”,但值是“提交”。 你最终可以这样做:

if (isset($_POST['submit']) &&  $_POST['submit'] == 'Submit') {

你的邮件参数不正确,就像布格所说的那样。

答案 2 :(得分:0)

您有2个错误

  1. 第一

    if (isset($_POST['submit']))
    // $_POST is case sensitive
    
  2. 第二

    if (isset($_POST['your_email']))
    // you dont have an inout named 'your_email'