我的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
答案 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文件中执行此操作。
请不要忘记中断标记中的输入和反斜杠。