@trumi

Почему форма не отправляет письма на почту?

На сайте сделал форму, к ней обработчик на php прикрутил, но письма не отправляются, на почту. В чем причина?
index.html
<div class="form-5 widget-3 vertical_mode widget-type-form_adaptive editorElement layer-type-widget s3-animator-fadeInLeft s3-animator" data-s3-animator="fadeInLeft">
		<div class="form__header">Оставить заявку</div>				
        
        
        
        <div class="form__body">
        
					<form class="contact_form" action="contact-form.php" method="post">
				<input type="hidden" name="_form_item" value="5">
				
									<div class="form-table">
						<div class="form-tbody">
															<div class="form-item-group group-text">
									<div class="form-item form-text name"><div class="form-item__header"><span class="form-item__title">Ваше имя:</span> <span class="form-item__required">*</span></div><div class="form-item__body">
                                    
 <input class="wm-input-default" type="text" size="1" maxlength="Array" value="" name="name" id="name">
                                    
                                    
                                    
                                    </div></div><div class="form-item form-text phone"><div class="form-item__header"><span class="form-item__title">Телефон:</span> <span class="form-item__required">*</span></div><div class="form-item__body">
                                    
                                    <input class="wm-input-default" type="text" size="1" maxlength="Array" value="" name="phone" id="phone"></div></div>
								</div>
																						<div class="form-item-group group-textarea">
									<div class="form-item form-textarea comments"><div class="form-item__header"><span class="form-item__title">Комментарии:</span></div><label class="form-item__body">
                                    
                                    <textarea class="wm-input-default" cols="1" rows="1" name="message" id="message"></textarea></label>
                                    
                                    
                                    
                                    </div>
								</div>
													</div>
													<div class="form-tfoot">
								<div class="form-item-group group-button">
																			<div class="form-item form-submit"><div class="form-item__header"><span class="form-item__title">&nbsp;</span></div><div class="form-item__body"><button class="wm-input-default" type="submit"><span>Отправить</span></button></div></div>
																	</div>
							</div>
											</div>
							</form>
				</div>
	</div>

contact-form.php
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
 
$to = 'hel@mail.ru';// тут твой емайл
$message = 'Имя: '.$name.' Телефон: '.$phone;
$headers = 'Заказ' . "\r\n";
 
mail($to, $message, $headers); //Не трогаем.
 
if(@mail) {
echo "<center><img src='img/1.png'></center>";// тут ссылка на картинку или страницу, которая появиться после заполнения формы
} else {
echo "<center><img src='img/2.png'></center>";// тут ссылка на картинку или страницу, если будет ошибка отправки
}
 


?>
  • Вопрос задан
  • 1445 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) if(@mail) { - на этой строке у вас будет фатал еррор, если вы его не видите, значит у вас выключено отображение ошибок. Смотрите лог ошибок
2) mail() -функция, передающая письмо smtp серверу, который назначен по умолчанию в настройках пхп. Она не отправляет почту, а только передает тело письма серверу, что будет с письмом дальше ей пофиг, и это уже проблемы сервера отправки, который делает с письмом что считает нужным, но вы об этом ничего не узнаете(во всяком случае по результату работы mail()).
3) Вам абсолютно верно подсказал Дмитрий о порядке аргументов в функции, кроме того у вас еще и криво названы переменные, из-за чего код выглядит еще хуже чем работает.
Ответ написан
Ваш ответ на вопрос

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

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