0

如果满足所有条件并回显“成功”,则以下脚本应该发送电子邮件。这里的问题是它返回“成功”但没有发送电子邮件。我尽力找出问题所在,但由于我是 PHP 新手,所以无法弄清楚。所以我正在寻找任何可能的帮助。任何帮助将不胜感激。先感谢您

$sql = "SELECT id, username FROM user WHERE email='$e' AND activated='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $numrows = mysqli_num_rows($query);
    if($numrows > 0){
        while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
            $id = $row["id"];
            $u = $row["username"];

        $emailcut = substr($e, 0, 4);
        $randNum = rand(10000,99999);
        $tempPass = "$emailcut$randNum";
        $hashTempPass = md5($tempPass);
        $sql = "UPDATE useroptions SET temp_pass='$hashTempPass' WHERE username='$u' LIMIT 1";
        $query = mysqli_query($db_conx, $sql);
        $to = "$e";
        $from = "auto_responder@geniusfree.net";
        $headers ="From: $from\n";
        $headers .= "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1 \n";
        $subject ="GeniusFree Password Reset";
        $msg = '<h2>Hello '.$u.'</h2><p>This is an automated message from GeniusFree. If you did not recently initiate the Forgot Password process, please disregard this email.</p><p>You indicated that you forgot your login password. We can generate a temporary password for you to log in with, then once logged in you can change your password to anything you like.</p><br /><p><a href="http://www.geniusfree.net/passwordreset.php?u='.$u.'&p='.$hashTempPass.'">Click here now to apply the temporary password shown below to your account</a></p><p>If you do not click the link in this email, no changes will be made to your account. In order to set your login password to the temporary password you must click the link above.</p>';
        if(mail($to,$subject,$msg,$headers)) {
            echo "success";
            exit();
        } else {
            echo "email_send_failed";
            exit();
        }}
4

3 回答 3

1

检查 MX 条目设置。最高优先级为 0。如果您在主机中使用邮件服务器。第一个条目应该是这样的优先级编号 0 ---> mail.yoursite.com。

另一种调试方法是使用电子邮件跟踪路由。您可以在 cpanel 中执行此操作。

希望这可以帮助。

于 2013-04-17T06:40:47.507 回答
0

首先,您需要配置 php 以从您的服务器发送电子邮件,如果您在本地主机上运行代码,那么您必须配置您的 php.ini 文件以发送电子邮件,如果代码在 Web 托管服务器上运行,则为此联系他们问题,有关配置详细信息,您可以参考在 php 中使用 xampp 发送邮件

如果您使用的是另一个本地服务器,例如 wamp,那么您必须在您的服务器上单独(下载)安装 sendmail 实用程序。

希望这对你有用

于 2013-04-17T06:57:09.117 回答
-1

你在本地主机上运行它吗?如果是这样,它可能在那里不起作用,请在虚拟主机上测试它并让我知道结果。

于 2013-04-17T05:14:25.423 回答