0

我有一个 php 邮件脚本,它可以在一台主机上完美运行。但是,当我尝试在网络解决方案主机上使用相同的脚本时,该函数返回 true,但从未发送任何电子邮件。

//get mail function data
$case = $_POST['case'];
$to = addslashes(strip_tags($_POST['to']));
$message = addslashes(strip_tags($_POST['message']));
$subject = addslashes(strip_tags($_POST['subject']));
$message = addslashes(strip_tags($_POST['message']));
$from = "confirmation@website.co";
$headers = "From: $from\r\n";

//send email
        if (mail($to,$subject,$message,$headers)){
            //formatting for error message
            $emailSent = "block";
            $emailFailed = "none";
        }
        else //if the email fails to send
        {

            $emailSent = "none";
            $emailFailed = "block";
        }
?>

有谁知道不同的主机是否需要邮件脚本中的特定信息?

4

3 回答 3

2

这是网络解决方案客户支持的问题。从共享主机服务器发送邮件通常会被很好地锁定——如果他们允许的话,它就会被限制。此外,调用mail只是意味着消息已成功传递给sendmail,而不是邮件离开服务器。它可能处于等待发送的队列中,它可能由于您无法控制的一百万个原因而被退回,等等。

于 2011-02-10T08:32:27.757 回答
0

It maybe that they have not enabled php mail, but ask the host for specifics.

Looking at your code it is not cleaning the input sufficiently. take a look at the is_forbidden function here: http://thedemosite.co.uk/phpformmailer/source_code_php_form_mailer_more_secure_than_cgi_form_mailers.php

于 2011-02-10T08:37:17.720 回答
0

一些主机有这个问题。在我的 (Mosso) 上,我必须像这样调整最后一个参数 (from):

mail($to, $subject, $message, $headers, "-f".$from)

可能不是 NetSol 的解决方案,但值得一试。我知道有些主机禁用了脚本并需要使用 smtp 类来发送邮件。

当然,这是假设您的 DNS 和 MX 记录一切正常。如果您尝试从与发送域不同的帐户发送,某些提供商会自动阻止它。

于 2011-02-10T08:32:17.303 回答