php - 无法理解为什么我没有使用 PHP mail() 函数将邮件发送到我的主机邮件
问题描述
我要做的只是向我的主机邮件发送一封非常基本的电子邮件。我目前使用的托管服务是https://www.ionos.com/并且我有一个注册电子邮件。我的网站已经托管并运行。我试图执行的代码是这样的:
索引.php
<form class="" action="/contactform.php" method="post">
<input type="text" name="name" value="">
<input type="text" name="mail" value="">
<textarea name="message"></textarea>
<button type="submit" name="submit">Submit</button>
</form>
联系表格.php
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$mailTo = 'info@installnewcooker.com';
$headers = 'From '.$mail;
$text = "You've received an e-mail from ".$name."\n\n".$message;
mail($mailTo, $name, $text, $headers);
header("Location: ../index.php");
}
如代码所示,我尝试发送消息的电子邮件是 info@installnewcooker.com。可悲的是,我没有收到任何东西,我也不知道为什么。PHP 代码没有给出任何错误。
解决方案
很可能,您需要一个具有身份验证的注册帐户。但该mail()
功能不允许这样的身份验证。
您可能想要安装一个合适的类,例如 PHPMailer。只需向实例提供您的邮件服务的身份验证信息,您就可以了。
如果还是不行,可以使用PHPMailer的debug模式来排查。如果您发现自己处于这种情况,很可能您的 Web 提供商不允许通过 PHP 进程发送电子邮件,这可能是为了避免滥用和垃圾邮件。在这种情况下,您需要与提供商交谈并启用该功能,以便该mail()
功能能够正常工作,并且可能需要添加一个自定义标头以向您的 Web 提供商标识电子邮件发件人,以用于会计/监控目的。作为替代方案,他们可能会为您提供适合与 PHPMailer 一起使用的用户/密码对。
推荐阅读
- javascript - 我无法在 Tampermonkey 的特定事件中播放声音
- python - 在 Python 中使用 Squeezenet 的 ImportError
- python - 如何在 Pandas 中使用 groupby 划分 2 个聚合列?
- javascript - 在反应中更新渲染组件的状态
- docker - 在 docker tensorflow/tensorflow:latest-gpu 中找不到 libcuda.so DSO
- azure-devops - Azure 管道 docker 无法复制多个项目
- python - 使用序列设置数组元素(Python)
- javascript - apply() 的输出
- c++ - c++ 中无符号位长类型之间的隐式转换,即 uint8_t,uint16_t
- mysql - 如何将表中的行与某些条件 Laravel 结合起来