- Хостинг
- Услуги
- Помощь
- Акции
Помощь
Неполадки при работе PHP-скриптов с отправкой почты на виртуальном сервере
Почта не доходит до получателя (доходит с большой задержкой)
Если ваш PHP работает как модуль веб-сервера Apache, то проверьте электронный адрес администратора, прописанный для домена. Зайдите в ISPmanager, перейдите в раздел «Сайты», выберите нужный домен и нажмите кнопку «Настройки сайта» на панели инструментов.
В открывшемся окне проверьте поле “E-mail администратора” - там должен быть указан действующий e-mail, заведенный локально на сервере. Если поле заполнено некорректно, то почта отправляется от имени www@localhost и останавливается спам-фильтрами получателя.
Ошибка “500 Internal Server Error”
Если вы работаете с PHP как CGI, то как описано выше проверьте правильность e-mail администратора, а также откройте файл php.ini и проверьте, что присутствует и корректно записана строка:
sendmail_path = "/usr/sbin/sendmail -t -i -f webmaster@test.ispvds.com" где webmaster@test.ispvds.com - действующий e-mail администратора, заведенный локально на сервере.
Если файл php.ini отсутствует, создайте его в директории /home/имя_пользователя/data/php-bin/, где имя_пользователя - имя пользователя, который указан как владелец сайта.
Скрипты PHP для отправки почты
Функция PHP, которая выполняет отправку почты - mail()
Самый элементарный скрипт отправки почты следующий:
<?php
mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
?>
Более сложный вариант:
<?php
if($_POST['submit']) { //проверка нажата ли кнопка “отправить”
$title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$mess = substr(htmlspecialchars(trim($_POST['mess'])), 0, 10000);
$to = 'test@test.ru'; //получатель
$from='test@test.ru'; //отправитель
mail($to, $title, $mess, 'From:'.$from);
echo 'Письмо отправлено.';
}
?>
Еще более сложный вариант:
<?php
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")){
$to = 'mail@yandex.ru';
$subject = 'Обратный звонок'; //Заголовок сообщения
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Имя: '.$_POST['name'].'</p>
<p>Телефон: '.$_POST['phone'].'</p>
</body>
</html>';
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Отправитель <from@example.com>\r\n";
mail($to, $subject, $message, $headers);
}
?>