我是一名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");
?>
谢谢:)
答案 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。