PHP邮件()不起作用请帮助我


PHP mail() not working help me please

有人可以帮我弄清楚为什么不发送吗?我是PHP的新手。

这是在我的网站上填写的联系表格。我从我的服务器(不是本地主机)发送并收到控制台消息"邮件未发送"

<?php
include 'ChromePhp.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
   $to = 'me@myemail.com';
   $subject = 'Email from Me';
   $message = $_POST['email'];
     if(mail($to, $subject, $message)){
        ChromePHP::log( 'Mail Sent');
     }else{
        ChromePHP::log( 'Mail Not Sent');
     }
}
?>

我知道这个问题以前有人问过,但我找不到有效的答案。提前感谢!

你应该包括 mail() 函数的标头,示例

$headers = 'From: webmaster@example.com' . "'r'n" .
'Reply-To: webmaster@example.com' . "'r'n" .
'X-Mailer: PHP/' . phpversion();

然后将$headers参数插入 mail() 函数:

mail($to, $subject, $message, $headers);

没有错误消息,我只能猜测。您可能需要在 php.ini 中设置 SMPT 服务器。您可以在运行时使用 ini_set('SMTP', 'your_server_here') 执行此操作。

有关邮件配置的更多信息,请访问:http://php.net/manual/en/mail.configuration.php

如果您没有,可以检查您的 ISP 是否有开放的服务器。ISP 有时具有打开的 SMTP 服务器(发送服务器),您可以通过查找有关如何设置邮件程序 (Outlook) 的说明来找到它们。

不过要小心,除了轻度测试之外,不要将其用于任何事情。我可以想象他们不会喜欢很多垃圾邮件通过他们的服务器。

编辑:另外,请阅读所需的标题。我看到您缺少发件人标头,这应该会导致警告。看这里: http://php.net/manual/en/function.mail.php

When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.
Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.

你应该检查你的邮件服务,因为上面的PHP代码非常正确。

您可以要求托管服务提供商激活邮件服务,因为某些托管服务提供商默认不允许使用邮件。