sendmail.php无法在移动设备上运行

时间:2015-05-11 03:21:06

标签: php wordpress mobile

奇怪的问题 - 我的sendmail.php在桌面和移动设备上完美地工作只在请求桌面网站时(在Chrome应用中),但在使用移动网站时,他根本无法工作。< / p>

有人可以帮我解决这个问题吗?

这是代码:

<?php
if(isset($_POST['email'])) {
    if (!check_email($_POST['email'])) 
    {
        echo 'Please enter a valid email address<br />';
    }
    else send_email();
}
exit;

function check_email($emailAddress) {
    if (filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
      return TRUE;
    } else {
      return FALSE;
    }
}
function send_email() {
    $message = "\nName: " . $_POST['name'] .
        "\nEmail: " . $_POST['email'] ;

    $message .= "\nMessage: " . $_POST['comment'] .
        "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] .
        "\nIP: " . $_SERVER["REMOTE_ADDR"] .
        "\n\nDate: " . date("Y-m-d h:i:s");

    $siteEmail = $_POST['receiver'];
    $emailTitle = $_POST['subject'];
    $thankYouMessage = "Thank you for contacting us, we'll get back to you shortly.";   

    if(!mail($siteEmail, $emailTitle, $message, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))
        { 
            echo 'error';
        }
    else 
    { 
        echo 'success'; 
    }
}


?>

2 个答案:

答案 0 :(得分:0)

您必须确保移动表单包含以下两个元素:

  1. 使用method="POST"提交。

  2. 您的电子邮件输入具有属性和值name="email"

  3. 我在以下代码中演示了这些内容的设置位置。这是不完整的,当然,它只是为了向您展示两个必需部分必须在哪里。

    <form ... method="POST">
    ...
        <input type="text" name="email" ... >
    ...
    </form>
    

    我还需要提一件事......

    话虽这么说,你在这里做的是 非常不安全 。您允许某人在网络表单上设置电子邮件和两个地址。一个(不那么)聪明的黑客可以轻松编写脚本,将您的服务器变成一个开放的中继,用于垃圾邮件或其他恶意活动。至少,您应该删除$_POST['receiver']并替换为硬编码的电子邮件地址,或至少不是最终用户在发布到您的表单时可以更改的内容。

答案 1 :(得分:0)

所以我深入研究,发现移动表单通过这个404文件指导提交。 现在的问题是,即使这个文件可用,也不会发送电子邮件......

  '。为 “\ r \ n” 个; $ headers。=   '来自:'。为 “\ r \ n” 个; $ headers ='MIME-Version:1.0'。   为 “\ r \ n” 个; $ headers。='Content-type:text / html; charset = utf-8'。为 “\ r \ n” 个;      $ message。=“姓名:”。 $ name。 “

”; $ message。=“主题:”   。 $ subject。 “

”; $ message。=“电子邮件:”。 $ email。 “
”; $ message。=“消息:”。 $ message_text。 “
”;      mail($ to,$ subject,$ message,$ headers,“ - f noreplay@info.com”);      回声1; }      if(isset($ _ POST ['sendmail'])&amp;&amp; $ _POST ['sendmail'] == 1){     发邮件(); }?&gt;