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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法理解为什么我不使用PHP mail()函数向我的主机邮件发送邮件[复制]相关的知识,希望对你有一定的参考价值。

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

我所要做的就是向我的主机邮件发送一封非常基本的电子邮件。我目前使用的托管服务是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 = 'info@installnewcooker.com';
    $headers = 'From '.$mail;
    $text = "You've received an e-mail from ".$name."

".$message;

    mail($mailTo, $name, $text, $headers);
    header("Location: ../index.php");
}

我正在尝试发送消息的电子邮件是info@installnewcooker.com,如代码中所示。可悲的是,我没有收到任何东西,我也没有任何线索。 PHP代码没有给出任何错误。

答案

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

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

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

另一答案

试试这个:

$headers = 'From: '.$mail;

mail($mailTo, $name, $text, $headers, "-f ".$mail);

以上是关于无法理解为什么我不使用PHP mail()函数向我的主机邮件发送邮件[复制]的主要内容,如果未能解决你的问题,请参考以下文章

我配置了我的 sendmail.ini 和 php.ini 但我无法使用 php 中的 mail() 函数发送电子邮件

在循环中使用 php mail() 函数发送 +-200 封电子邮件

如何使用php的mail函数

本地主机上的 php mail() 函数

php mail() 无法连接,但 telnet 有效

通过 sendgrid/mail 发送时,如何向我的电子邮件添加取消订阅链接