Иногда бывают ситуации, когда не совсем очевидно, на сайте отправка писем настроена, но письма не доходят или не отправляются. В этой ситуации самое простое решение - проверить функцию mail() php, а работает ли она? Или же возможно ограничена отправка писем?
Для проверки работоспособности PHP-функции mail() нужно создавать тестовый PHP-файл (например, mailtest77.php) следующего содержания:
<?php
$message = '';
if (isset($_POST['email']) && !empty($_POST['email'])){
if (mail($_POST['email'], $_POST['subject'], $_POST['body'], '')){
$message = "Email has been sent to <b>".$_POST['email']."</b>.<br>";
}else{
$message = "Failed sending message to <b>".$_POST['email']."</b>.<br>";
}
}else{
if (isset($_POST['submit'])){
$message = "No email address specified!<br>";
}
}
if (!empty($message)){
$message .= "<br><br>n";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
Mail test
</title>
</head>
<body>
<?php echo $message; ?>
<form method="post" action="">
<table>
<tr>
<td>
e-mail
</td>
<td>
<input name="email" value="<?php if (isset($_POST['email'])
&& !empty($_POST['email'])) echo $_POST['email']; ?>">
</td>
</tr>
<tr>
<td>
subject
</td>
<td>
<input name="subject">
</td>
</tr>
<tr>
<td>
message
</td>
<td>
<textarea name="body"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="send" name="submit">
</td>
</tr>
</table>
</form>
</body>
</html>
Загрузите созданный файл в рабочую папку веб-сайта, доступную по HTTP-протоколу (там где располжен index.php index.html).
Запустите файл, набрав его адрес (URL) в адресной строке браузера, например: http://example.com/mailtest77.php
Введите в поля открывшейся страницы адрес электронной почты, тему и текст проверочного сообщения и нажмите на кнопку «send», чтобы отправить сообщение.
В случае успешной отправки на странице появится сообщение вида «Email has been sent to ...». В противном случае появится сообщение вида «Failed sending message to...».