如果滿足所有條件並回顯「成功」,那麼以下腳本應該發送電子郵件。這裏的問題是它返回「成功」,但電子郵件沒有被髮送。我盡力找出問題所在,但無法弄清楚,因爲我是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,但它不能告訴你它是否成功發送。 –