来自HTML表单的PHP邮件

来自HTML表单的PHP邮件,php,html,forms,email,Php,Html,Forms,Email,我正在尝试在我正在处理的网站上设置联系人表单,其代码如下所示: <form action="contact.php" method="POST"> <ul> <li> <label for="name">Name:</label><br> <input type="text" name="name" />

我正在尝试在我正在处理的网站上设置联系人表单,其代码如下所示:

<form action="contact.php" method="POST">
           <ul>
        <li>
            <label for="name">Name:</label><br>
            <input type="text" name="name" />
            </li>
            <br>
            <li>
            <label for="email">E-mail:</label><br>
            <input type="email" name="email" />
            </li>
            <br>
            <li>
            <div id="label">Enquiry:</div>
            <select name="interest"><br>
            <option value="Wedding">Wedding</option>
            <option value="Engagement/Couple">Engagement or Couple</option>
            <option value="Portrait">Portrait</option>
            <option value="Family">Family</option>
            <option value="Children">Children</option>
            </select>
            </li>
            <br> 
            <li>
            <label for="message">Message:</label><br>
            <textarea name="message" cols="40" rows="6"></textarea>
            </li>
            <br>
            <li>
            <button class="submit" type="submit" value="Submit">Submit Form</button>
            </li>
       </ul>
</form>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
mail('myemail@example.com', 'Contact Form', 'This is a test');
?>
</body>
</html>

  • 名称:

  • 电子邮件:

  • 查询:
    婚礼 订婚还是结婚 肖像画 家庭 儿童

  • 信息:

  • 提交表格
最初,我只是将表单操作作为mailto:myemail@example.com但我显然更希望用户只提交表单并发送电子邮件,而不是仅仅打开他们的电子邮件应用程序。我正试图构建一个PHP脚本来实现这一点,但到目前为止还没有运气,可能是因为这是我第一次看到PHP,更不用说尝试编写它了

我看了很多不同的例子,并深入研究了PHP手册以寻求帮助,但无论我写什么都会得到相同的结果,按表单上的submit按钮,收件箱中什么也没有收到。因此,我开始了一种故障查找过程,试图帮助确定问题。我将从非常基本的PHP脚本开始,然后尝试在每个脚本中添加更多脚本,看看它在哪里崩溃

我首先将表单操作更改为php测试脚本,如下所示:

<?php
phpinfo() ;
?>

这工作得很好,并且显示了php信息页面。很好,所以我知道我的主机支持php,并且已经安装了它。这不是问题所在。其次,我将表单操作更改为以下代码:

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?> 
</body>
</html>

PHP测试
它再次像预期的那样工作,显示了Hello World段落。在此之后,我尝试了我能想到的最基本的php邮件脚本,它看起来像这样:

<form action="contact.php" method="POST">
           <ul>
        <li>
            <label for="name">Name:</label><br>
            <input type="text" name="name" />
            </li>
            <br>
            <li>
            <label for="email">E-mail:</label><br>
            <input type="email" name="email" />
            </li>
            <br>
            <li>
            <div id="label">Enquiry:</div>
            <select name="interest"><br>
            <option value="Wedding">Wedding</option>
            <option value="Engagement/Couple">Engagement or Couple</option>
            <option value="Portrait">Portrait</option>
            <option value="Family">Family</option>
            <option value="Children">Children</option>
            </select>
            </li>
            <br> 
            <li>
            <label for="message">Message:</label><br>
            <textarea name="message" cols="40" rows="6"></textarea>
            </li>
            <br>
            <li>
            <button class="submit" type="submit" value="Submit">Submit Form</button>
            </li>
       </ul>
</form>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
mail('myemail@example.com', 'Contact Form', 'This is a test');
?>
</body>
</html>

PHP测试
当我按下表单上的submit按钮时,所有这些都成功地完成了,在浏览器的地址栏中显示了一个空白页面,其中包含我的php脚本的url,我没有收到任何电子邮件。不在我的收件箱或垃圾邮件文件夹中,不在任何地方。由于这是一个如此简单的脚本,我至少有两种思路。1是我只是做了一些非常基本的错误,考虑到我对php的知识极其有限,这是一种很高的可能性。2是不是有更复杂的事情发生了,可能我的主机的php设置不适合我正在尝试做的事情?我不知道


我很抱歉这个问题太冗长了,我只是想展示一下我到目前为止所做的一切,希望它能为你们提供任何帮助。非常感谢您对我的问题提供的任何帮助。

检查表单顶部,有一个写的
,这意味着表单值将发布到contact.php文件中,其中的邮件函数用于发送包含表单数据的电子邮件。请显示“代码>联系方式,PHP<代码>

< P> >一件事要考虑的是您的电子邮件可能会被您的电子邮件供应商阻止。我有一个Heart Internet主机,我尝试将一封电子邮件从Heart托管的网站发送到我的AoL帐户,但电子邮件根本没有显示。但任何发送到Gmail的电子邮件都可以。这是因为美国在线阻止了所有来自内心的电子邮件,因为网站产生了垃圾邮件

我将在下面输入一些PHP代码,这些代码应该可以工作:

// Input your desired location instead of email address
$to = 'email address';
$subject = 'Test email';

$message = '<html><body>';
    $message .= '<h1>This is an email.</h1>';
    $message .= '<p>I hope you like it.</p>';
$message .= '</body></html>';

$headers = 'MIME-Version: 1.0\r\n';
$headers .= 'Content-Type: text/html; charset=ISO-8859-1\r\n';

mail($to,$subject,$message,$headers);
//输入所需的位置,而不是电子邮件地址
$to='电子邮件地址';
$subject='testemail';
$message='';
$message.=“这是一封电子邮件。”;
$message.='希望您喜欢。

'; $message.=''; $headers='MIME版本:1.0\r\n'; $headers.='内容类型:文本/html;字符集=ISO-8859-1\r\n'; 邮件($to、$subject、$message、$headers);
或者您正在本地主机上运行。

或者php.ini文件中的SMTP设置配置不正确

我的主机已阻止我所在包的邮件服务器。我本应该检查一下,但在我沮丧的时候,我忽略了它。谢谢你没有用愚蠢的答案回答我愚蠢的问题。很抱歉让你白白读了这些,除了一个新鲜的脑袋和一双眼睛总是能创造奇迹

一,。页面是空白的,因为您将其设置为空白。它完全没有内容。2.
mail()
如果成功或失败,则返回布尔值。查看上面的内容。您是否安装了邮件服务器?以上各点都是正确的。我测试了你的(邮件)代码,它确实有效。由于没有标题,它最终进入了我的垃圾邮件框,但它还是成功了。我假设您正试图通过
localhost
运行此程序?检查您的
.ini
文件。我的主机已阻止我所在包的邮件服务器。我本应该检查一下,但在我沮丧的时候,我忽略了它。谢谢你没有用愚蠢的答案回答我愚蠢的问题。很抱歉让你白白读了这些,除了一个新鲜的脑袋和一双眼睛总是能创造奇迹!!事实上,拥有额外的眼睛确实有帮助。很高兴您能够解决问题,并可能使服务正常运行,cheers@DanThe OP正在更改
contact.php
中的代码。最后一个例子是失败的地方您是否尝试从本地主机?如果是这样的话,请上传到托管服务器.Thnx以供评论。是的,我在问题的步骤中更改了contact.php的代码。它已上载到我的托管服务器,这是我的问题,因为它已为我的包禁用邮件服务器。感谢您的输入并花时间提供帮助。我的答案对您有帮助,但我得到了-vote:(感谢您提供此信息,当我解决邮件服务器问题时,我会尝试一下。