@ulechkafox

Отправка писем на почту с помощью PHP?

Не приходят сообщения на почту. Пользуюсь на данный момент бесплатным хостингом qlihost.ru. Сообщение об успехе появляется, но письма так и нет.

Есть форма:
<form id="form" class="form-signin p-4 mt-4" action="" method="post">
			<div class="row">
			<div class="col-sm">
				<input type="text" name="your_name" id="inputName" class="form-control" placeholder="Ваше имя*" required="">
				  <br>
				<input type="email" name="your_mail" id="inputEmail" class="form-control" placeholder="Ваш E-mail">
				<br>
				<input type="tel" name="your_phone" id="inputPassword" class="form-control mb-4" placeholder="Номер телефона*" required="">
			</div>
			<div class="col-sm">
				<textarea name="your_message" class="form-control" placeholder="Ваше сообщение" style="height: 92px;"></textarea>
				<br>
				<input type="submit" name="send" value="Получить консультацию" class="btn btn-block bg-autumn text-white in_banner">
			</div>
			</div>
			<span class="text-muted">Вы соглашаетесь с условиями обработки персональных данных. <a href="#" class="texe-inform">Ознакомиться</a>.</span>
		</form>


И PHP скрипт:
<? $name=$_POST['your_name'];
$mail=$_POST['your_mail'];
$phone=$_POST['your_phone'];
$message=$_POST['your_message'];
$send=$_POST['send'];
$my_mail='uchicat7@mail.ru';
if(isset($send)){
	if($send=='Получить консультацию'){
		if(!empty($name) && !empty($phone)){
			mail($my_mail, $phone, $message.' ('.$mail.')');
			echo "Спасибо за Ваше сообщение, оно успешно отправлено.";
		}
	}
} ?>


Особенно хочется узнать что именно нужно смотреть в логах, если они тут имеют значение. Заранее благодарю.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Сообщение об успехе появляется
Оно у вас привязано к наличию полей, а не к отправке письма.

Особенно хочется узнать что именно нужно смотреть в логах, если они тут имеют значение. Заранее благодарю.

1) mail() имеет туеву хучу ограничений, тем более на бесплатном хостинге
2) mail() не обязан отправлять письмо, его задача отдать его прописанному в конфиге пхп смтп серверу, что с ним будет дальше ему абсолютно фиолетово.
3) Неплохо бы сделать хотя бы проверку на то что вернул mail()
4) Хорошим решением будет использовать нормальные библиотеки для отправки почты, PHPMailrer, SwiftMailer...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы