php - 提交时表单未发送电子邮件。我错过了什么?
问题描述
我对 php 还很陌生,我还在学习基础知识。我创建了一个简单的“联系我们”表单,该表单应该将数据发送到电子邮件地址。但是,我没有收到电子邮件。“谢谢”消息正确显示,但电子邮件永远不会发送。
不幸的是,我在 php 方面的知识很少,所以我很难解决这个问题。我确实成功地编写了一个只有一个字段的更简单的表单。那个发送正确。由于这个表单有多个字段,它似乎是在扔掉一些东西。
<?php
if($_POST["submit"]) {
$recipient="myemail@gmail.com";
$subject="Contact Form";
$sender=$_POST["sender"];
$senderEmail=$_POST["senderEmail"];
$message=$_POST["message"];
$mailBody="Name: $sender\nEmail: $senderEmail\n\n$message";
mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");
$thankYou="<p>Thank you! Your message has been sent.</p>";}
?>
<?=$thankYou ?>
<form method="post" action="company.php">
<input class="contact" type="text" name="sender"
placeholder="First Name" size="25">
<input class="contact" type="text" name="last"
placeholder="Last Name" size="25">
<input class="contact" type="text" name="title"
placeholder="Title" size="25">
<input class="contact" type="text" name="business"
placeholder="Business" size="25">
<input class="contact" type="email" name="senderEmail"
placeholder="Email" size="25">
<input class="contact" type="text" name="phone"
placeholder="phone" size="25">
<textarea class="contact" name="message"
placeholder="How can we help you?" rows="4" cols="56"></textarea>
<input class="blu-btn" type="submit" name="submit"
value="Send Message">
</form>
它没有抛出任何错误,我只是没有收到电子邮件。我检查了垃圾邮件,尝试了单独的电子邮件,但我遗漏了一些东西。非常感谢你的帮助!
解决方案
您应该首先检查您的服务器是否真的在发送邮件,稍微更改您的代码:
if($_POST["submit"])
{
$recipient="myemail@gmail.com";
$subject="Contact Form";
$sender=$_POST["sender"];
$senderEmail=$_POST["senderEmail"];
$message=$_POST["message"];
$mailBody="Name: $sender\nEmail: $senderEmail\n\n$message";
if (mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>"))
{
echo "<p>Thank you! Your message has been sent.</p>";
}
else
{
print_r(error_get_last()["message"]);
}
}
查看 mail() 函数的PHP 文档
返回值
TRUE
如果邮件被成功接受投递,则返回,FALSE
否则返回。需要注意的是,仅仅因为邮件被接受投递,并不意味着邮件实际上会到达预定目的地。
可能服务器本身没有正确配置为发送电子邮件。是共享主机吗?或者类似的东西?
亲切的问候!
推荐阅读
- java - 如何格式化日期对象以匹配@JsonFormat?
- powerbi - SnowFlake 和 PowerBI “此值不支持本机查询”
- python - Django 迁移并非未应用
- python - LeakyReLU 中的“负”斜率在哪里?
- sql - SQL Server 使用计算列和用户定义函数根据另一列中的更改来获取日期时间
- java - Java中的资源加载问题
- sql - SSIS 集合将同一数据库的两个版本拉入单个目标进行合并 - 来自一个源的缺失列
- javascript - 使用 javascript 获取 Geojson 属性列表
- typescript - 如何创建将字段添加到任何给定对象类型的自定义实用程序类型?
- python - Selenium 无法设置文本