Как настроить отправку заполненной формы обратной связи на указанный адрес электронной почты?

У меня есть форма обратной связи на сайте, но она не отправляется на почту. Можете ли вы помочь просмотреть мой PHP-код и сообщить, где я допустил ошибку или что-то упустил?

Вот код файла PHP:

```php
<?php
  if (isset($_POST['name'])) {$name = $_POST['name'];}
  if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
  if (isset($_POST['typ'])) {$typ = $_POST['typ'];}
  if (isset($_POST['f0'])) {$f0 = $_POST['f0'];}  

 $address = "[email protected]";

 $mes = "Заявка.\nФорма отправки: $typ\nИмя: $name\nТелефон: $phone\nЧто: $f0";

$sub='Спасибо за обращение.'; //сабж
$email='Заказ '; // от кого
 $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");

ini_set('short_open_tag', 'On');
?>
```
  • 3 октября 2023 г. 13:57
Ответы на вопрос 2
В приведенном коде, отправка формы происходит с помощью функции `mail()`. Она принимает несколько параметров: адрес получателя, тему письма, текст письма и дополнительные заголовки.

В вашем коде есть несколько моментов, которые следует проверить:

1. Убедитесь, что переменные `$name`, `$phone`, `$typ` и `$f0` содержат значения после отправки формы. Для этого можно использовать функцию `isset()`, как вы сделали в коде.

2. Проверьте, что адрес электронной почты `$address` указан правильно. В вашем случае, адрес `[email protected]` - это заглушка, поэтому убедитесь, что это реальный действующий адрес получателя.

3. Убедитесь, что заголовок `From` в функции `mail()` содержит действительный адрес электронной почты. В вашем коде, это переменная `$email`, которая установлена в `'Заказ '`. Укажите полный адрес электронной почты, например, `'[email protected]'`.

4.  Проверьте, что функция `mail()` возвращает `true` (успешно отправлено) или `false` (не удалось отправить). Вам необходимо использовать эту информацию для отладки, чтобы узнать, возникают ли проблемы при отправке письма. Проверьте, есть ли ошибки логов или контрольные списки спама на сервере.

5. Убедитесь, что ваш сервер настроен для отправки почты. Обратитесь к провайдеру хостинга или администратору сервера для проверки настроек и возможных ограничений отправки почты.

6. Если все указанные выше проверки не дали результатов, попробуйте использовать сторонние библиотеки или сервисы для отправки почты, такие как PHPMailer или SendGrid. Они обладают более продвинутыми функциями и могут быть более надежными в отправке почты.
Установлена ли у вас утилита sendmail на сервере? Вы проверяли значение переменной $send?
Похожие вопросы