Share this post on:

При отправке письма на почту приходят крокозябры, что делать ?

Не давно столкнулся с проблемой, когда при отправки письма приходят крокозябры на почту. Я использовал почту yandex у меня все было нормально, а у заказчика была другая почта, почта от хостинга.

И так я подготовил решения проблемы. Для начала нужно подготовить html разметку формы.

<form method="get">
  <label>Ваше имя<br>
    <input type="text" name="your-name" value="" size="40">
  </label>
  <label>Ваш e-mail<br>
    <input type="email" name="your-email" value="" size="40">
  </label>
  <label>Телефон<br>
    <input type="tel" name="phone" value="" size="40">
  </label>
  <label>Ваше сообщение<br>
    <input type="text" name="your-message" value="" size="40">
  </label>
  <input type="submit" value="Отправить">
	<?php echo $ok_mail; ?>
</form>

В самом низу я вывожу значение переменной $ok_mail, позже поймете для чего. Преступим к написанию PHP скрипта для отправки письма на почту.

<?php
header("Content-Type: text/html; charset=utf-8");
   $headers= "MIME-Version: 1.0" . "\r\n";
   $headers .= "Content-type: text/html; charset=utf-8 \r\n";
   $headers .= "From:info@torgdom1.ru";

   $ok_mail = "Жду отправки вашего сообщения.";
   if ( $_GET['ok_mail'] ) $ok_mail = $_GET['ok_mail'];
   $to = "info@torgdom1.ru";

   $subject = "Сообщение";
   $subject = "=?utf-8?B?".base64_encode($subject)."?=";

   $name  = $_GET['your-name'];
   $phone = $_GET['phone'];
   $email = $_GET['your-email'];
   if(isset($_GET['your-message'])){
      $message = "
      <html>
          <head>
          <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
              <title>Сообщение</title>
          </head>
          <body>";

      $message .= "
              <P>Имя: ".$name.".</P>
              <P>Email: ".$email.".</P>
              <P>Телефон: ".$phone.".</P>
              <P>Текст сообщения: ".$_GET['your-message']."</P>";
 
      $message .= "</body>
      </html>";
      mail($to, $subject, $message, $headers);
      $ok_mail = "Ваше успешно Сообщение отправлено.";
      header('Location: https://torgdom1.ru/remont-restorannogo-oborudivaniy.php/?ok_mail=Ваше успешно Сообщение отправлено.');
   }
?>

Смело копируйте этот код и вставляйте себе. Только единственное внизу вот на этой строчке — «header(‘Location: https://torgdom1.ru/remont-restorannogo-oborudivaniy.php/?ok_mail=Ваше успешно Сообщение отправлено.’);» поменяйте url адрес на свой.

И так вот весь код целиком.

<?php
header("Content-Type: text/html; charset=utf-8");
   $headers= "MIME-Version: 1.0" . "\r\n";
   $headers .= "Content-type: text/html; charset=utf-8 \r\n";
   $headers .= "From:info@torgdom1.ru";

   $ok_mail = "Жду отправки вашего сообщения.";
   if ( $_GET['ok_mail'] ) $ok_mail = $_GET['ok_mail'];
   $to = "info@torgdom1.ru";

   $subject = "Сообщение";
   $subject = "=?utf-8?B?".base64_encode($subject)."?=";

   $name  = $_GET['your-name'];
   $phone = $_GET['phone'];
   $email = $_GET['your-email'];
   if(isset($_GET['your-message'])){
      $message = "
      <html>
          <head>
          <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
              <title>Сообщение</title>
          </head>
          <body>";

      $message .= "
              <P>Имя: ".$name.".</P>
              <P>Email: ".$email.".</P>
              <P>Телефон: ".$phone.".</P>
              <P>Текст сообщения: ".$_GET['your-message']."</P>";
 
      $message .= "</body>
      </html>";
      mail($to, $subject, $message, $headers);
      $ok_mail = "Ваше успешно Сообщение отправлено.";
      header('Location: https://torgdom1.ru/remont-restorannogo-oborudivaniy.php/?ok_mail=Ваше успешно Сообщение отправлено.');
   }
?>
<form method="get">
  <label>Ваше имя<br>
    <input type="text" name="your-name" value="" size="40">
  </label>
  <label>Ваш e-mail<br>
    <input type="email" name="your-email" value="" size="40">
  </label>
  <label>Телефон<br>
    <input type="tel" name="phone" value="" size="40">
  </label>
  <label>Ваше сообщение<br>
    <input type="text" name="your-message" value="" size="40">
  </label>
  <input type="submit" value="Отправить">
	<?php echo $ok_mail; ?>
</form>

Кому была полезна эта информация буду очень благодарен если пожертвуйте на развитие сайта. Спасибо!

Share this post on:

Leave a Comment

Ваш адрес email не будет опубликован.