这个问题在这里已有答案:
我所要做的就是向我的主机邮件发送一封非常基本的电子邮件。我目前使用的托管服务是https://www.ionos.com/,我有一个注册的电子邮件。我的网站已经托管并正在运行。我正在尝试执行的代码是这样的:
的index.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>
contactform.php
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$mailTo = '[email protected]';
$headers = 'From '.$mail;
$text = "You've received an e-mail from ".$name."\n\n".$message;
mail($mailTo, $name, $text, $headers);
header("Location: ../index.php");
}
我正在尝试发送消息的电子邮件是[email protected],如代码中所示。可悲的是,我没有收到任何东西,我也没有任何线索。 PHP代码没有给出任何错误。
很可能,您需要一个具有身份验证的注册帐户。但是mail()
函数不允许这样的身份验证。
您可能想安装一个合适的类,如PHPMailer。只需为实例提供您的邮件服务的身份验证信息,您应该做得很好。
如果它仍然不起作用,您可以使用PHPMailer的调试模式进行调查。如果您发现自己处于这种情况,很可能您的Web提供商不允许通过PHP进程发送电子邮件,这可能是为了避免滥用和发送垃圾邮件。在这种情况下,您需要与提供程序通信并启用该功能,以便mail()
函数可以工作,并且可能需要添加自定义标头以向您的Web提供程序标识电子邮件发件人以进行记帐/监视。作为替代方案,他们可能会为您提供适合与PHPMailer一起使用的用户/密码对。
试试这个:
$headers = 'From: '.$mail;
mail($mailTo, $name, $text, $headers, "-f ".$mail);