无法理解为什么我不使用PHP mail()函数向我的主机邮件发送邮件[复制]

问题描述 投票:1回答:2

这个问题在这里已有答案:

我所要做的就是向我的主机邮件发送一封非常基本的电子邮件。我目前使用的托管服务是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代码没有给出任何错误。

php email
2个回答
4
投票

很可能,您需要一个具有身份验证的注册帐户。但是mail()函数不允许这样的身份验证。

您可能想安装一个合适的类,如PHPMailer。只需为实例提供您的邮件服务的身份验证信息,您应该做得很好。

如果它仍然不起作用,您可以使用PHPMailer的调试模式进行调查。如果您发现自己处于这种情况,很可能您的Web提供商不允许通过PHP进程发送电子邮件,这可能是为了避免滥用和发送垃圾邮件。在这种情况下,您需要与提供程序通信并启用该功能,以便mail()函数可以工作,并且可能需要添加自定义标头以向您的Web提供程序标识电子邮件发件人以进行记帐/监视。作为替代方案,他们可能会为您提供适合与PHPMailer一起使用的用户/密码对。


0
投票

试试这个:

$headers = 'From: '.$mail;

mail($mailTo, $name, $text, $headers, "-f ".$mail);
© www.soinside.com 2019 - 2024. All rights reserved.