带有PHP电子邮件POST的HTML5表单

时间:2013-03-02 23:50:02

标签: php html html5

我的HTML5表单验证完全正常,但我想在提交时发送数据输入。我按照一些教程,一个基本的教程工作,但我现在尝试了一个更复杂的PHP脚本来发送电子邮件,我不会发送任何东西?

<?php
// Subject and Email Variables

$emailSubject = 'HTML5 Form Submission';
$webMaster = 'John.Doe@live.co.uk';

//Gathering Data variables

$FNameField = $_POST['FName'];
$LNameField = $_POST['LName'];
$ageField = $_POST['age'];
$emailField = $_POST['EMail'];
$URLField = $_POST['URL'];
$telField = $_POST['tel'];
$messageField = $_POST['message'];

$body = <<<EOD
<br><hr><br>
Name: $FNameField<br>
Age: $ageField <br>
Email: $emailField <br>
Website: $URLField <br>
Telephone: $telField <br>
Message: $messageField <br>
EOD;

    $headers = "From: $email\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail($webMaster, $emailSubject, $body, $headers);

    $theResults = <<<EOD

<html>
<head>
<title>JakesWorks - travel made easy-Homepage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-color: #f1f1f1;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    color: #666666;
    text-decoration: none;
}
-->
</style>
</head>

<div>
  <div align="left">Thank you for your interest! Your email will be answered very soon!</div>
</div>
<div>
<a href="Forms.php">Click Here to return to the previous page</a>
</body>
</html>
EOD;

echo "$theResults";




?>
编辑:它也是网络托管的,所以那里没有问题,我的服务器确实理解PHP

2 个答案:

答案 0 :(得分:1)

知道gmail接受该消息,我们知道这不是服务器错误。

根据我的经验,您可以通过多种方式将其发送到真实帐户,第一个是您的标题。

要让我的网络表单发送(并被接受)到大多数电子邮件帐户,我使用了这些标题:

$headers = 'From: Example Last <noreply@example.com>' . "\r\n"; // Set from headers
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

注意From头,它有一个大写“name”后跟一个空格。在该空间之后,有一封与其发送的网站相关的电子邮件。在您的情况下,我会说电子邮件应为“<noreply@mattmeadows.info>”。

现在,电子邮件会验证是否向您发送了正确的HTML电子邮件,其中包括<html><body>标记。由于发送纯文本更容易,并且您不需要看起来很花哨(因为它是发送给您的),您可以将标题设置为纯文本电子邮件。

然后你必须按如下方式制作$body

$body = "Name: $FNameField
Age: $ageField
Email: $emailField
Website: $URLField
Telephone: $telField
Message: $messageField";

总而言之,您的问题的答案是: 实时邮件服务器拒绝您的php邮件表单。您可以进行以下更改,它应该能够邮寄所有电子邮件。

答案 1 :(得分:0)

确保您已定义

ini_set("SMTP","smtp.example.com" ); 
ini_set('sendmail_from', 'user@example.com'); 

或者只是在ini文件中执行此操作。

请不要忘记中断标记中的输入和反斜杠。