При отправке письма на почту приходят крокозябры, что делать ?
Не давно столкнулся с проблемой, когда при отправки письма приходят крокозябры на почту. Я использовал почту 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>
Кому была полезна эта информация буду очень благодарен если пожертвуйте на развитие сайта. Спасибо!