@mikilikala
На фронте

При отправке письма с формы обратной связи, на почте пишет noreply. Как поменять на текст или на email отправителя?

Не могу понять как изменить "noreply" на email отправителя или какой-нибудь текст.
604e0243552e9971489503.png

<form action="sender.php" method="post">
        <input type="text" class="name" name="name" placeholder="Имя" required>
        <input type="text" name="surname" placeholder="Фамилия" required>
        <input type="text" class="phone" name="phone" placeholder="Телефон">
        <input type="email" name="email" placeholder="Email" required>
        <textarea name="text" id="" cols="30" rows="10" placeholder="Введите текст"></textarea>
        <button type="button" class="send-form">Отправить форму</button>
        <div class="status"></div>
    </form>


<?php
    $name = $_POST['name'];
    $surname = $_POST['surname'];
	$phone = $_POST['phone'];
    $email = $_POST['email'];
    $text = $_POST['text'];

	$to = "mikilikala@gmail.com"; 
	$date = date ("d.m.Y"); 
	$time = date ("h:i");
	$from = $email;
	$subject = "Заявка c сайта";
	
$msg="
Имя: $name
Фамилия: $surname
Телефон: $phone
Почта: $email
Текст: $text"; 	
mail($to, $subject, $msg, "From: $from");
?>
  • Вопрос задан
  • 371 просмотр
Решения вопроса 1
@goshaLoonny
Начнем с того что я удивлен что форма вообще отправляется, ведь тип кнопки должен быть submit, а не button.
А что бы добавить имя отправителя, используйте заголовки
<?php

if ($_POST['submit']) {
  $mailForReport = 'admin@example.com'; // Мейл куда будут отчеты приходить
  $senderName = 'Раб Виталий'; // Имя отправителя
  $senderLogin = 'rab_vitalii'; // Логин отправителя
  $subject = 'Заявка c сайта'; // Тема письма
  $headers = [ // Заголовки
      'From' => "{$senderName} <{$senderLogin}@{$_SERVER['HTTP_HOST']}>",
      'Reply-To' => "{$senderName} <{$senderLogin}@{$_SERVER['HTTP_HOST']}>",
      'X-Mailer' => 'PHP/' . phpversion(),
      'Content-type' => 'text/html; charset=utf-8'
  ];
  // Красивенько отправим все табличкой, а не переносами
  $msg = <<<HTML
<table>
  <tr><td>Имя</td><td>{$_POST['name']}</td></tr>
  <tr><td>Фамилия</td><td>{$_POST['surname']}</td></tr>
  <tr><td>Телефон</td><td>{$_POST['phone']}</td></tr>
  <tr><td>Почта</td><td>{$_POST['email']}</td></tr>
  <tr><td>Текст</td><td>{$_POST['text']}</td></tr>
</table>
HTML;

  $isSended = mail($mailForReport, $subject, $msg, $headers);
}

?>
<meta charset="utf-8">

<?php if ( isset($isSended) ) :?>
  <p><?= $isSended ? 'Письмо отправленно' : 'Не удалось отправить письмо' ?></p>
<?php endif; ?>

<form id="callback-form" action="<?= $_SERVER['SCRIPT_NAME'] ?>" method="post" style="width: 300px">
  <input type="text" name="name" placeholder="Имя" required>
  <input type="text" name="surname" placeholder="Фамилия" required>
  <input type="number" name="phone" placeholder="Телефон" required>
  <input type="email" name="email" placeholder="Email" required>
  <textarea name="text" cols="30" rows="10" placeholder="Введите текст" required></textarea>
  <input type="submit" name="submit" value="Отправить форму">
</form>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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