Função de correio PHP, dando erro fatal, mas o correio ainda é enviado
-
22-09-2019 - |
Pergunta
Eu tenho (o que eu acho) é um script simples para enviar uma correspondência curta:
<?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);
?>
(Mudei os endereços de e -mail por razões de privacidade)
Quando isso é carregado, após um atraso, recebemos o erro
"Erro fatal: o tempo máximo de execução de 30 segundos excedeu ..." - mas o e -mail é enviado com sucesso.
Estou perdendo algo simples aqui?
Muito obrigado antecipadamente
Leddy
Solução
Enviando um único e-mail usando mail
não deve levar 30 segundos. Nunca. Você deve conversar com o administrador do servidor, a menos que esteja enviando correio para centenas ou milhares de destinatários, ou o e-mail é dezenas de megabytes grandes. Parece, porém, que também não é o caso. Eu acho que o sendmail
O comando que o PHP está ligando internamente está demorando muito para responder por algum motivo.
Este é o script completo que você está executando?
Outras dicas
Tente usar set_time_limit(0)
Para remover o prazo de execução do PHP. Pode não funcionar corretamente se você tiver o Safe_mode, mas deve funcionar de outra forma.