Вы выполняете какие-либо проверки почтовой функции? Он должен возвращать true, если он выполняется успешно - зная, что это поможет нам сократить другие возможные причины, по которым вы, возможно, не получаете почту, такие как фильтры, конфигурация сервера или smtp и т. Д. Выполните что-то вроде:
if (mail($to, $subject, $body, $header)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
Должно дать вам лучшую идею, и должно сразу умереть, если по какой-то причине функция не существует. Почтовые функции Php невероятно привередливы на бесплатных веб-хостах, так как они обычно используются для спама.
Публикация полных заголовков также может помочь законным сообщениям пройти проверку на спам.
$headers = "Return-path: <sendingemail@test.com>\n";
$headers .= "Reply-to: <sendingemail@test.com>"."\n";
$headers .= "Content-Type: text/html; charset=windows-1252\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: <sendingemail@test.com>\n";
$headers .= "X-Priority: 3\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Organization: My Organization\r\n";
$headers .= "\n\n";