Я использую PHPMailer для отправки писем, но из моего localhost в xampp. Когда я тестирую свой API в Postman, для обработки запроса требуется слишком много времени, но он отображает статус ответа 200, но ответ JSON не возвращается. Ниже приведены мои коды.Состояние ответа 200, но не JSON
public function actionSendMail() {
//Getting request from frontend
$request = file_get_contents('php://input');
//Decoding input into an array
$input = json_decode($request, true);
//Validating request
if (is_null($input)) {
$response = json_encode(['error' => 'Bad Input']);
die($response);
} else {
//mail parameters
$to = $input['to'];
$subject = $input['subject'];
$body = $input['body'];
$headers = $input['headers'];
//Sending mail
if($result = $this->sendMail($to, $subject, $body, $headers) === true) {
$response = json_encode(['success' => true]);
echo $response;
} else {
$response = json_encode(['error' => 'Mail Not Sent']);
die($response);
}
}
}
private function sendMail ($to, $subject, $body, $headers) {
//Configurating PHP Mailer
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = 'secure.emailsrvr.com';
$mail->Port = 995;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = '****';
$mail->SMTPSecure = 'ssl';
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->SetFrom('[email protected]');
$mail->AddReplyTo($headers);
$mail->Subject = $subject;
$mail->MsgHTML($body);
$mail->AddAddress($to, "");
if(!$mail->Send())
return $mail->ErrorInfo;
return true;
}
Спасибо за ваше время.
смог извлечь после ответа HTTP вы получили от Почтальон Вы? – light
@light, в почтальоне Я просто получаю пустой HTML, но в ответе JSON говорится, что ответ не ответил. Но статус ответа 200 –
Хорошо. Анализируя код, я думаю, что это потому, что 'die()' просто завершает PHP-скрипт, и, следовательно, веб-сервер возвращает «200», указывающий на успех, так как ваш PHP-скрипт не устанавливал заголовки иначе. Теперь проблема в том, почему почта была неудачной. В какой ОС вы работаете? – light