如何从HTML5表单发送电子邮件

时间:2014-08-12 23:03:40

标签: php html5 forms email html-form-post

我在尝试提交表单时遇到问题,并通过电子邮件发送提交的数据。我知道这通常已经完成,但我似乎在弄清楚这里有什么问题。所以当前的代码是。

 <div class="contact" id="contact">
        <div class="wrap">
            <h3>CONTACT US</h3>
            <p class="a">Free Estimates</p>
            <div class="form">
                 <div class="form-text">
                 <form action="../contact.php">
                    <input type="text" class="textbox" value="Your Name*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                    <input type="text" class="textbox" value="Your E-mail*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'E-mail';}">
                    <input name="PNumber" type="text" class="Subject" value="Phone Number" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Website';}">
                </div>
                     <textarea placeholder="Your Message*"></textarea>
                     <div class="clear"> </div>
                     <input type="submit" value="SEND MESSAGE">                  
             </div>
     </div>
     </div>

我有一个名为mailfrom.php的文件,但我认为这是我遇到问题的地方

<?php
$to      = 'contact@qixty.com';
$subject = 'New Request from Website';
$message = $_POST['mytextarea'];
$headers = 'From: webmaster@qixty.com' . "\r\n" .
'Reply-To: contact@qixty.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

在主页面上点击提交后,我被带到一个新的空白页面。

更改http://qixty.com的网址 至 http://qixty.com/mailfrom.php?PNumber=Phone+Number

任何帮助都会很棒。 我知道我可以像这样插入一个链接到mailto

<a href="mailto:contact@qixty.com?cc=faulkerson@gmail.com" class="btn" data-type="submit">Send</a>

但是这不会发布表单数据。我想让它向我发送一封电子邮件,其中包含邮件正文中的表单数据。

3 个答案:

答案 0 :(得分:3)

你需要:

  • method="POST"添加到<form>
  • name属性(与您尝试在$_POST中使用的键相匹配)添加到表单控件(例如<textarea name="mytextarea"></textarea>)。

如果您不想在浏览器中显示空白页面,请从PHP脚本输出一些内容,然后只需调用mail()

您还应该停止将value属性视为<label>。使用正确的<label>元素并保留value属性以提供默认值。

答案 1 :(得分:0)

如果您的操作文件名是mailform.php,那么

<form action="../contact.php">

应该是

<form action="../mailform.php">

如果两个文件都在同一目录中,则从操作属性中删除../

更新


形式


<div class="contact" id="contact">
        <div class="wrap">
            <h3>CONTACT US</h3>
            <p class="a">Free Estimates</p>
            <div class="form">
                 <div class="form-text">
                 <form method='post' action="../mailform.php">
                    <input type="text" class="textbox" value="Your Name*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                    <input type="text" class="textbox" value="Your E-mail*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'E-mail';}">
                    <input name="PNumber" type="text" class="Subject" value="Phone Number" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Website';}">
                </div>
                     <textarea name='mytextarea' placeholder="Your Message*"></textarea>
                     <div class="clear"> </div>
                     <input type="submit" value="SEND MESSAGE">                  
             </div>
     </div>
     </div>

mailform.php


$to      = 'contact@qixty.com';
$subject = 'New Request from Website';
$message = $_POST['mytextarea'];
$headers = 'From: webmaster@qixty.com' . "\r\n" .
'Reply-To: contact@qixty.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$send = mail($to, $subject, $message, $headers);

// this will help you to get the status mail sent or not
if($send) :
   echo "Email sent";
else :
    echo "Email sending failed";
endif;

答案 2 :(得分:0)

这个问题已得到解答。我有html问题php很好。

<div class="form">
                 <div class="form-text">
                 <form action="../mailfrom.php" method="post">
                    <input type="text" class="textbox" value="Your Name*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                    <input type="text" class="textbox" value="Your E-mail*" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'E-mail';}">
                    <input name="PNumber" type="text" class="Subject" value="Phone Number" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Website';}">
                </div>
                     <textarea name="mytextarea" placeholder="Your Message*"></textarea>
                     <div class="clear"> </div>
                     <input type="submit" Label="SEND MESSAGE">                  
             </div>