Почтовая функция PHP выдает фатальную ошибку, но почта все еще отправляется

StackOverflow https://stackoverflow.com/questions/1998802

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня есть (то, что я думаю) простой скрипт для отправки короткого письма:

<?php

$to = "test@test.co.uk";

$subject = "Amendment required";
$message = "Employee: " . $_POST['employees'] . "<BR /><BR />Notes: " . $_POST['notes'] . "<BR /><BR />Reported By: " . $_POST['empID'] . ".";
$from = "amendments@test.co.uk";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $from";
mail($to,$subject,$message,$headers);

?>

(Я изменил адреса электронной почты по соображениям конфиденциальности)

Когда это загружается, после задержки мы получаем сообщение об ошибке

"Фатальная ошибка:Превышено максимальное время выполнения в 30 секунд ..." - но письмо отправлено успешно.

Я упускаю здесь что-то простое?

Заранее большое спасибо

ледди

Это было полезно?

Решение

Отправка одного электронного письма с использованием mail не должно занять 30 секунд.Никогда.Вам следует обратиться к администратору сервера, если только вы не отправляете почту сотням или тысячам получателей или объем электронной почты не превышает десятки мегабайт.Однако, похоже, что ни то, ни другое не так.Я бы предположил, что sendmail команда, которую PHP вызывает внутренне, по какой-то причине отвечает слишком долго.

Это полный сценарий, который вы выполняете?

Другие советы

Попробуйте использовать set_time_limit(0) чтобы убрать ограничение по времени выполнения PHP.Это может работать неправильно, если у вас включен safe_mode, но в противном случае это должно работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top