通过脚本发送的电子邮件未送达

时间:2011-04-18 15:15:38

标签: php html forms

我是一名php初学者,我正在尝试使用php mail()函数通过电子邮件发送表单数据。出于某种原因,我的表单正在处理并转到感谢页面,但我没有收到包含数据的电子邮件。 我检查了我的代码,但找不到有什么问题!有人可以帮我一把吗? 以下是我的代码示例:

<form class="form-wrapper" action="process_form.php" method="post">

      <label for="costumer_name">First Name</label><br/>
      <input type="text" name="costumer_first_name"/>

<button type="submit">Send</button>
</form>

这是process_form.php代码

<?php
$CustomerFirstName = $_POST['customer_first_name'];

// Build the email 

$to = "my@mailinator.com";
$headers = "From: $Email";
$subject = "Red T-shirt Web Order";
$message = "Red T-shirt Order Information:\n\n
Customer First Name:".$CustomerFirstName."\n";

// Send the mail using PHPs mail() function
mail($to, $subject, $message, $headers);


// Redirect
header("Location: thank_you.php");
?>

谢谢:)

5 个答案:

答案 0 :(得分:1)

尝试使用以下方式进行静态调用:

mail('your@email.com', 'Test Subject', 'Test Message');

如果这不起作用,那么它可能是您的SMTP服务器,或者缺少它。

编辑:此外,由于未发送$ Email,您发送的标题为“发件人:”,这是一个无效的标题,可能会导致SMTP丢失。我知道它在我们的服务器上运行,它使用MailEnable,因为我之前遇到过确切的错误。

答案 1 :(得分:0)

问题可能在这一行:

$headers = "From: $Email";

我在代码中没有看到$Email实例化。

mail()对Windows和Linux也有不同的作用。

答案 2 :(得分:0)

我认为您错过了指定SMTP主机名

答案 3 :(得分:0)

$CustomerFirstName = $_POST['customer_first_name'];

<input type="text" name="costumer_first_name"/>

customer_first_name
costumer_first_name

发现差异! :-)

此外,$Email未定义且内部引号,需要定义并"From: " . $Email;

答案 4 :(得分:0)

正如Neal所说,你没有从表单中收集电子邮件或者在PHP代码中获取该变量的值。

$ CustomerFirstName也不会被插入到你的$ message中,因为在你的PHP代码中你将其称为

$CustomerFirstName = $_POST['customer_first_name'];

而客户拼写为字母u,但在HTML中,拼写为字母o。