如何在没有服务器访问的情况下调试PHP(PHP' mail()函数)?

时间:2017-05-18 01:47:26

标签: php web-services email web-hosting

我已经阅读了关于PHP的mail()函数以及如何调试它的高度赞成的SO答案。但是,我的客户目前与DreamHost有一个共享主机方案,我无法访问他的DH帐户或主机服务器,所以我无法调试(或者我发现它很难调试) PHP的邮件功能。

mail()返回true,但邮件永远不会发送。阅读完这些答案后,我知道我必须编辑php.ini,重新配置一些设置,或安装/更改某些软件。不幸的是,我对服务器的访问非常有限(读取:否)。

我应该如何调试php?我应该尝试联系DH客户支持吗?我忽略了什么吗? 另外,我不知道如何处理错误报告。我这样做了吗? (这是我第一次使用PHP;我是Java开发人员)

供参考:

PHP:

`$errors = '';
    $proceed = True;
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    $myemail = 'myemail@hotmail.com';//I've Tried Hotmail and Gmail
    if(empty($_POST['name'])  ||
        empty($_POST['email']) ||
        empty($_POST['message']))
    {
        $errors .= "\n Error: all fields are required";
        $proceed = False;
    }
    $name = $_POST['name'];
    $email_address = $_POST['email'];
    $message = $_POST['message'];
    if (!preg_match(
    "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
    $email_address))
    {
        $errors .= "\n Error: Invalid email address";
        $proceed = False;
    }`

    $mailNotFailure = False;
    if($proceed)
    {
        $to = $myemail;
        $email_subject = "Contact form submission: $name";
        $email_body = "You have received a new message. ".
            " Here are the details:\n Name: $name \n ".
            "Email: $email_address\n Message \n $message";
        $headers = "From: $myemail\n";
        $headers .= "Reply-To: $email_address \n";
        $mailNotFailure = mail($to,$email_subject,$email_body,$headers);
        phpinfo();
        //redirect to the 'thank you' page
    }

    else
    {
        //header('Location: contact.html');
    }

    if ($mailNotFailure)
    {
        //header('Location: index.html');
    }
    else 
    {
        //header('Location: contact.html');
    }`

可以找到phpinfo()here

另外,我为PHP代码格式化道歉。这是他第一次给我一个艰难的时间。我必须将单个脚本包含为两个块。请原谅。

0 个答案:

没有答案