我在某個地方得到了這個 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> Name is empty.' ); echo json_encode($result ); die; } if(empty($email)){ $result = array( 'response' => 'error', 'empty'=>'email', 'message'=>'<strong>Error!</strong> Email is empty.' ); echo json_encode($result ); die; } if(empty($message)){ $result = array( 'response' => 'error', 'empty'=>'message', 'message'=>'<strong>Error!</strong> 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'];
}

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
您的腳本響應 HTTP 200,錯誤導致郵件功能不成功。嘗試替換行:
$result = array( 'response' => 'error', 'message'=>'<strong>Error!</strong> Cann\'t Send Mail.' );
和:
$result = array( 'response' => 'error', 'message'=>'<strong>Error!</strong> Cann\'t Send Mail.', 'reason' => error_get_last()['message'] );
添加到數組中,會顯示什么錯誤
'reason' => error_get_last()['message']
你會看到為什么你的郵件沒有發送。
我希望它對你有幫助:)
- 2 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消