如果满足所有条件并回显“成功”,那么以下脚本应该发送电子邮件。这里的问题是它返回“成功”,但电子邮件没有被发送。我尽力找出问题所在,但无法弄清楚,因为我是PHP新手。所以我正在寻找任何可能的帮助。任何帮助将不胜感激。预先感谢您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 = "[email protected]";
$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();
}}
我可能需要调试的步骤。首先,回显你发送给邮件功能的所有变量。他们看起来正确吗?也许你正在发送一个不同于你想象的电子邮件地址。第二:你运行的服务器是否允许php Mail?一些服务器对您可以使用和不能使用的内容有限制。 – jeremysawesome
检查垃圾邮件。可能你的邮件会在那里。 –
如果电子邮件是发送的,则mail()函数返回true,但它不能告诉你它是否成功发送。 –