mail.php отправляет на mail.ru иероглифы в чем проблема?

serg3318

Новичок
<?
// пример использования
$file = "site/potolochkin.pdf"; // файл
$semail=$_POST['email']; // кому

$from = "[email protected]--p1ai"; // от кого
$subject = "Здравствуйте!"; // тема письма




$message = '
<html lang="ru">
<head>



<title>Здравствуйте</title>

<style>
<meta charset="utf-8">
hr {
border: none; /* Убираем границу */
background-color: Orange; /* Цвет линии */
color: Orange; /* Цвет линии для IE6-7 */
height: 2px; /* Толщина линии */
}
</style>

<style>
h1 {
font-family: Times New Roman, Times, serif; /* Гарнитура текста */
font-size: 250%; /* Размер шрифта в процентах */
}
p {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 17pt; /* Размер шрифта в пунктах */
}
</style>

</head>

<body>

<a class="header__logo"><img src="http://потолкоффкоми.рф/site/img/logo.png" alt="Logo"></a>



<hr>



<img src="http://потолкоффкоми.рф/site/img/advantages-img.png" alt="Письма мастера дзен" align="left" >



<h1>Здравствуйте!</h1>

<p> Я-Сергей Потолкофф.<br> Высылаю Вам файл с полезной информацией о натяжных потолках.
Вы можете в любое время обратиться ко мне по телефону 8 922 086-56-33
Буду очень рад изготовить для вас замечательный потолок!

<br><br>Ваш Сергей Потолкофф.
</p>


<hr>

</body>
</html>';


$r = sendMailAttachment($semail, $from, $subject, $message, $file); // отправка письма c вложением
echo ($r)?'Письмо отправлено':'Ошибка. Письмо не отправлено!';
//$r = sendMailAttachment($mailTo, $from, $subject, $message); // отправка письма без вложения
//echo ($r)?'Письмо отправлено':'Ошибка. Письмо не отправлено!';


/**
* Отправка письма с вложением

* @param string $from
* @param string $subject
* @param string $message
* @param string|bool $file - не обязательный параметр, путь до файла
*
* @return bool - результат отправки
*/

function sendMailAttachment($mailTo, $from, $subject, $message, $file = false){
$separator = "---"; // разделитель в письме
// Заголовки для письма
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $from\nReply-To: $from\n"; // задаем от кого письмо
$headers .= "Content-Type: multipart/mixed; boundary=\"$separator\""; // в заголовке указываем разделитель
// если письмо с вложением
if($file){
$bodyMail = "--$separator\n"; // начало тела письма, выводим разделитель
$bodyMail .= "Content-type: text/html; charset='utf-8'\n"; // кодировка письма
$bodyMail .= "Content-Transfer-Encoding: quoted-printable"; // задаем конвертацию письма
$bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n"; // задаем название файла
$bodyMail .= $message."\n"; // добавляем текст письма
$bodyMail .= "--$separator\n";
$fileRead = fopen($file, "r"); // открываем файл
$contentFile = fread($fileRead, filesize($file)); // считываем его до конца
fclose($fileRead); // закрываем файл
$bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=\n";
$bodyMail .= "Content-Transfer-Encoding: base64\n"; // кодировка файла
$bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n";
$bodyMail .= chunk_split(base64_encode($contentFile))."\n"; // кодируем и прикрепляем файл
$bodyMail .= "--".$separator ."--\n";
// письмо без вложения
}else{
$bodyMail = $message;
}
$result = mail($mailTo, $subject, $bodyMail, $headers); // отправка письма
return $result;
}
header("Location: ./formmail.php");


?>
 

nefone

Новичок
предлагаю не отправлять pdf файл, а давать в письме ссылку на его скачивание.

кстати, подскажите кто нибудь, обращение к глобальным массивам не является ли моветоном?
PHP:
$email = $_POST['email']
может теперь стоит использовать filter_input() ?
 

AnrDaemon

Продвинутый новичок
Скорее, стоит использовать нормальную библиотеку, типа PHPMailer или SwiftMailer, раз сами не в состоянии разобраться, что за фигня у вас в коде творится.
И на будущее потрудитесь оформлять свои сообщения, читать больно.
 
Сверху