在Plesk上设置php mail()时遇到问题

在Plesk上设置php mail()时遇到问题,php,forms,email,plesk,Php,Forms,Email,Plesk,我正在为一个网站设置电子邮件表单,而mail()函数就是不起作用。服务器正在运行Plesk。我确信代码很好,因为它在不同的web服务器上运行时没有问题 我已经设置了一个没有回复的电子邮件帐户并添加了from标题,但这仍然没有解决问题。这是我的密码: $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $formcontent="From: $name, $email \nMessage:

我正在为一个网站设置电子邮件表单,而mail()函数就是不起作用。服务器正在运行Plesk。我确信代码很好,因为它在不同的web服务器上运行时没有问题

我已经设置了一个没有回复的电子邮件帐户并添加了from标题,但这仍然没有解决问题。这是我的密码:

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name, $email \nMessage: $message";
$to = "myemail@differentdomain.com";
$subject = $_POST['subject'];
$headers = 'From: noreply@mydomain.com' . "\r\n" .
'Reply-To: $email' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $formcontent, $headers);
有什么想法吗

谢谢,
伊利安

代码本身不足以判断。发送邮件将取决于

  • PHP代码(看起来还可以)
  • PHP配置(未知)。服务器上的PHP可以配置为通过命令行(sendmail工具)或SMTP发送。可以从PHP文档中对mail()函数的描述中了解更多详细信息
  • 安装MTA(未知)-即远程SMTP中的身份验证模式或通过sendmail工具提供本地未经授权的传递(可能会被阻止以防止发送垃圾邮件)
  • 在远程SMTP连接的情况下,邮件服务器的可用性将非常重要
  • 我建议检查所有阶段。代码本身只是众多因素之一
    当涉及网络通信时。

    在哪里使用
    phpversion()
    ?这不是一个函数吗?似乎没有什么东西在后面叫它,可能因为它而停在它的轨道上。但不是100%确定。是的,它只是确保正确传递头。不管有没有,它都不会发送任何东西。就像你说的,你的代码很好,我想不出为什么它不能工作。你检查了
    mail()的返回值了吗?如果布尔值为true,那么PHP会成功地将电子邮件移交给服务器的SMTA,问题不在PHP中。在处理外部资源时,您永远不应该假设成功。可能什么都不是,但您是否检查了
    php.ini
    中的邮件路径?同时检查您的邮件服务器设置下是否激活了
    。您好,我会检查这些内容。最奇怪的是大多数电子邮件都会通过。。但是有一个严重的延迟,有时甚至超过10个小时。从我的角度来看,它证明了你的代码和PHP配置都很好,但MTA配置似乎很奇怪。嗯,好的,谢谢你。我会设法与公司取得联系,看看他们对此有何评论。