0

我的 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

4

2 回答 2

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 标题,它有一个大写的“名称”,后跟一个空格。在空格之后,有一封与发送它的网站相关的电子邮件。在你的情况下,我会说电子邮件应该是“ <noreply@mattmeadows.info>”。

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

然后你必须做$body如下:

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

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

于 2013-03-03T00:09:58.527 回答
0

确保您已定义

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

或者只是在ini文件中进行。

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

于 2013-03-03T00:06:33.747 回答