亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

網絡響應 200,但收到錯誤消息;PHP 發送電子郵件腳本

網絡響應 200,但收到錯誤消息;PHP 發送電子郵件腳本

PHP
慕森王 2022-07-16 10:17:51
我在某個地方得到了這個 PHP 代碼,一切看起來都還不錯,但是每次我嘗試發送測試電子郵件時都會收到一條錯誤消息;但是,網絡消息說它確實發送了。請查看圖片和代碼片段。請幫忙。謝謝PHP 腳本    session_cache_limiter( 'nocache' );    header( 'Expires: ' . gmdate( 'r', 0 ) );    header( 'Content-type: application/json' );    $to         = '[email protected]';  // put your email here    $email_template = 'simple.html';    $subject    = strip_tags($_POST['subject']);    $email       = strip_tags($_POST['email']);    $phone      = strip_tags($_POST['phone']);    $name       = strip_tags($_POST['name']);    $message    = nl2br( htmlspecialchars($_POST['message'], ENT_QUOTES) );    $result     = array();    if(empty($name)){        $result = array( 'response' => 'error', 'empty'=>'name', 'message'=>'<strong>Error!</strong>&nbsp; Name is empty.' );        echo json_encode($result );        die;    }     if(empty($email)){        $result = array( 'response' => 'error', 'empty'=>'email', 'message'=>'<strong>Error!</strong>&nbsp; Email is empty.' );        echo json_encode($result );        die;    }     if(empty($message)){         $result = array( 'response' => 'error', 'empty'=>'message', 'message'=>'<strong>Error!</strong>&nbsp; Message body is empty.' );         echo json_encode($result );         die;    }    $headers  = "From: " . $name . ' <' . $email . '>' . "\r\n";    $headers .= "Reply-To: ". $email . "\r\n";    $headers .= "MIME-Version: 1.0\r\n";    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";    $templateTags =  array(        '{{subject}}' => $subject,        '{{email}}'=>$email,        '{{phone}}'=>$phone,        '{{name}}'=>$name,        '{{message}}'=>$message        );HTML FORM - 這是我的 HTML 代碼。我的表格可能有問題嗎?然而,我認為這是 PHP,或者某些不匹配的東西。
查看完整描述

2 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

您收到 200 錯誤的原因是您自己捕獲了錯誤并回顯了輸出。如果您希望錯誤為 500,則可以嘗試在錯誤中添加此 if/else:


header($_SERVER["SERVER_PROTOCOL"] . ' 500 Internal Server Error', true, 500);  

exit;

為了從郵件函數本身調試錯誤,這篇文章解釋了:


$success = mail('[email protected]', 'My Subject', $message);

if (!$success) {

    $errorMessage = error_get_last()['message'];

}


查看完整回答
反對 回復 2022-07-16
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

您的腳本響應 HTTP 200,錯誤導致郵件功能不成功。嘗試替換行:

$result = array( 'response' => 'error', 'message'=>'<strong>Error!</strong>&nbsp; Cann\'t Send Mail.'  );

和:

$result = array( 'response' => 'error', 'message'=>'<strong>Error!</strong>&nbsp; Cann\'t Send Mail.', 'reason' => error_get_last()['message'] );

添加到數組中,會顯示什么錯誤

'reason' => error_get_last()['message']

你會看到為什么你的郵件沒有發送。

我希望它對你有幫助:)


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號