Кодировка письма при отпавке на почту PHP

Статус
В этой теме нельзя размещать новые ответы.

Robert Plant

Создатель
Регистрация
18 Ноя 2008
Сообщения
41
Реакции
16
Помогите у меня письма приходят в абракадабра при отправке письма. Надо поставить кодировку win 1251. А вот как сделать что бы обработчик правильно читал?
В PHP я еще не очень силен!

Еще может сам хост принимает письма в кодировке Koi-R8 если что можно сделать перекодировку?

Вот сама страница с формой заказа

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">

<STYLE type=text/css>.button {
    BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 9pt; BORDER-BOTTOM-WIDTH: 0px; COLOR: white; FONT-FAMILY: Arial; BACKGROUND-COLOR: #003366; BORDER-RIGHT-WIDTH: 0px
}
.input {
    BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 220px; BORDER-BOTTOM: #7f9db9 1px solid
}
</STYLE>

<SCRIPT language=JavaScript>
<!-- JavaScript
function checkForm(f)
{
 if((f.fam.value=="")||(f.name.value=="")||(f.otch.value=="")||(f.city.value=="")||(f.index.value=="")||(f.address.value=="")||(f.email.value==""))
 {
  alert("Вы указали не всю информацию!!! Все поля, кроме поля \"Область, край\", обязательны для заполнения!");
  return false;
 }
 
 if((f.pay_mode.value=="3")&&(f.country.value!="Россия"))
      {
       alert("Вы не можете заказать диск наложенным платежом, если проживаете не на территории Российской Федерации!!!");
       return false;
      }
      
      
 if(!f.email.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,4}$/i))
 {
  alert ("Введите корректно Ваш E-Mail адрес!");
  f.email.focus();
  return false;
 }
 return true;
}
// - JavaScript - -->
</SCRIPT>

<META content="MSHTML 6.00.5730.11" name=GENERATOR>

<script type="text/javascript">YZwYx();</script>

</HEAD>
<BODY bgColor=#003366>  
 <!--- SmartLog ---><script language="javascript">
i=Math.random();w=screen.width;h=screen.height;
bps=screen.colorDepth;ln=navigator.systemLanguage;
if(navigator.cookieEnabled) cook = "Y"; else cook = "N";
 document.write('<a href="http://www.smartlog.ru/" target="_top"><img width=1 height=1 src="http://www.smartlog.ru/counter/?i='+i+'&cid=999&r='+escape(document.referrer)+'&sid=0&cook='+cook+'&s='+w+'x'+h+'&pg='+escape(window.location.href)+'" alt="SmartLog.ru - интернет статистика" border=0></a>')
</script><!--- SmartLog --->
<TABLE height=506 cellSpacing=0 cellPadding=10 width=615 align=center 
bgColor=#FFFFFF border=0>
 <TBODY> 
 <TR>
    <TD>
      
   <DIV align=center> 
    <p><font color="#CC0000"><b><br>
     Оформить заказ на диск<br />
«Воплоти свою мечту вместе программой Macromedia Dreamweaver»<br>
     <br>
     <font color="#000000" face="Arial, Helvetica, sans-serif">(оплата при получении 
     DVD на почте)</font> </b></font><b><font face="Arial, Helvetica, sans-serif"><br>
     <br>
     </font></b></p>
    <p><font face="Tahoma, Arial, Helvetica, sans-serif" size="2" color="#CC0000"><b>Внимание!</b></font><font face="Tahoma, Arial, Helvetica, sans-serif" size="2"> 
     Пожалуйста, заполняйте данную форму предельно внимательно, особенно поля 
     <br>
     Вашего домашнего адреса! <b><font color="#CC0000">Несколько раз, перепроверьте 
     правильность данных !</font> </b></font></p>
    <p>&nbsp;</p>
   </DIV></TD></TR>
  <TR>
    <TD bgColor=#ffffff>
      <TABLE id=table6 borderColor=#cccccc height=415 cellSpacing=0 
      cellPadding=5 width=630 align=center bgColor=#ffffff border=1>
        <TBODY>
        <TR>
          <TD>
            <FORM name=form1 onsubmit="return checkForm(this)" 
            action=2.php method=post>
            <TABLE id=table7 style="FONT-SIZE: 11pt; FONT-FAMILY: Arial" 
            height=430 cellSpacing=2 cellPadding=2 width="93%" align=center 
            border=0>
              <TBODY>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Фамилия<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=20 name=fam> </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Имя<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=20 name=name> 
</TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Отчество<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=20 name=otch> 
</TD></TR>
              <TR>
                <TD colSpan=2>
                  <HR align=center width="100%" color=#cccccc SIZE=2>
                </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Страна<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=20 name=otch> </TD>
              </TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Область, край, республика<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT> 
                  </SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=100 name=area> 
              </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Город<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=50 name=city> 
</TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Адрес (улица, дом...)<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><TEXTAREA class=input name=address></TEXTAREA> 
                </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Почтовый индекс<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=10 name=index> 
              </TD></TR>
              <TR>
                <TD colSpan=2>
                  <HR align=center width="100%" color=#cccccc SIZE=2>
                </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">E-mail<FONT 
                  face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                <TD width=346><INPUT class=input maxLength=30 name=email> 
              </TD></TR>
              <TR>
                <TD colSpan=2>
                  <HR align=center width="100%" color=#cccccc SIZE=2>
                </TD></TR>
              <TR>
                <TD align=right width=217><B><SPAN 
                  style="FONT-SIZE: 10pt">Способ оплаты</SPAN></B></TD>
                
         <TD width=346>
          <select class=input name=pay_mode>
           <option 
                    value=3 selected>Наложенным платежом</option>
           <option 
                    value=2>RBKmoney  (более 24-х способов)</option>
          </select>
         </TD>
        </TR>
              <TR>
                <TD colSpan=2>
                  <HR align=center width="100%" color=#ffffff noShade SIZE=2>
                </TD></TR></TBODY></TABLE>
            <CENTER>* - <FONT face="Tahoma, Arial, Helvetica, sans-serif" 
            color=#cc0000 size=2>поле обязательно для 
            заполнения.</FONT><BR><BR><INPUT type=hidden value=1 name=tovar_id> <INPUT class=button type=submit value=ЗАКАЗАТЬ name=submit> 
            </CENTER></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
</BODY></HTML>

А вот сам php страница с кодом обработки

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="box">
<div id="content">
   <?php

  
  echo "Здравствуйте, ";
  echo $_POST["fam"]; 
  echo $_POST["name"];
  echo "!";
     
  echo "<h1>Ваш заказ успешно принят и поставлен в обработку.</h1>";
       
  echo $_POST["preference"];
  echo "<h2>В течение 24 часов на ваш электронный адрес: </h2>";
  echo $_POST["email"];
  echo "&nbsp;придет сообщение с просьбой подтвердить заказ.";
  $message  =
    "\r\nФамилия: ".$_POST["fam"].
    "\r\nИмя: ".$_POST["name"].
	"\r\nОтчество: ".$_POST["otch"].
	"\r\nИндекс: ".$_POST["index"].
	"\r\nРегион: ".$_POST["area"].
	"\r\nГород: ".$_POST["city"].
	"\r\nУлица дом, квартира: ".$_POST["address"].
	"\r\nСпособ оплаты: ".$_POST["preference"].
	"\r\nЕмаил: ".$_POST["email"].
    "\r\nIP: ".$_SERVER["REMOTE_ADDR"];
  mail("zakaz@megakamsk.ru", "Заказ на диск", $message);

?>  
</div>
</div>
</body>
</html>

Может кто подскажет и исправит что бы мог получать письма на русском языке?
 
Посмотреть ман по функции mail как установить заголовок с кодировкой пример 4
 
Попробуй добавить:
PHP:
$headers = 'Content-type: text/html; charset=windows-1251' . "\r\n";

и дальше:
mail("zakaz@megakamsk.ru", "Заказ на диск", $message, $headers);
 
Попробуй добавить:
PHP:
$headers = 'Content-type: text/html; charset=windows-1251' . "\r\n";

и дальше:
mail("zakaz@megakamsk.ru", "Заказ на диск", $message, $headers);

Поставил то что ты добавил теперь полчаеться
тема письма пишет по русский но само содержание ставит вопросики вот так: �������

Зато на бесплатные почтовые ящики приходит нормально на рамблер майл и яндекс.
Наверное так и оставлю. Но ради интереса хотелось бы узнать почему:


Я писал заявку хостингу. В какой кодировке вы принимаете письма они ответили:
Письма с неправильной кодировкой в "Почтовом интерфейсе" обрабатываются в кодировке "ISO-8859-1". Чтобы смотреть такие письма в нормальной кодировке, надо установить почтовый клиент и в нем просматривать письма. В вашем случае, только почтовый клиент правильно определяет кодировку.

С почтовым клиентом я разобрался. Спасибо большое всем!

Подскажите как исправить кодировку на данный момент она выглядит вот так

PHP:
  <?php

  
  echo "Здравствуйте, ";
  echo $_POST["fam"]; 
  echo $_POST["name"];
  echo "!";
  
  echo "<h1>Ваш заказ успешно принят и поставлен в обработку.</h1>";
       
  echo $_POST["preference"];
  echo "<h2>В течение 24 часов на ваш электронный адрес: </h2>";
  echo $_POST["email"];
  echo "&nbsp;придет сообщение с просьбой подтвердить заказ.";
   $message  =
    "\r\nФамилия: ".$_POST["fam"] . 
    "\r\nИмя: ".$_POST["name"] . 
	"\r\nОтчество: ".$_POST["otch"] . 
	"\r\nИндекс: ".$_POST["index"] . 
	"\r\nРегион: ".$_POST["area"] .
	"\r\nГород: ".$_POST["city"] . 
	"\r\nУлица дом, квартира: ".$_POST["address"] . 
	"\r\nСпособ оплаты: ".$_POST["preference"] . 
	"\r\nЕмаил: ".$_POST["email"] . 
"\r\nIP: ".$_SERVER["REMOTE_ADDR"]. 
	
$headers = "Content-type: text/html; charset=windows-1251" . "\r\n";
mail("zakaz@megakamsk.ru", "Заказ на диск", $message, $headers); 
?>
 
Подскажите как исправить кодировку на данный момент она выглядит вот так
В чем набираешь код? У тебя кодировка самого кода верная?
 
я хотел сделать на что бы можно было на хостинге мыло получать письма в русской кодировке То есть что бы письма приходил на e-mail хоста типа вот такого: имя@название сайт.ru

Добавлено через 6 минут
Еще один вопрос где то прочитал что можно сделать дублирующим e-mail то есть второй третий!
Если кому не трудно напишите как сделать?
 
Добавлено через 6 минут
Еще один вопрос где то прочитал что можно сделать дублирующим e-mail то есть второй третий!
Если кому не трудно напишите как сделать?

просто вписать в поле "кому":
The formatting of this string must comply with RFC 2822.
Some examples are:
user@example.com, anotheruser@example.com ...
User <user@example.com>, Another User <anotheruser@example.com> ...

или к твоим хедерам добавить

Код:
$headers .= 'To: User <user@example.com>, Another User <anotheruser@example.com>' . "\r\n";
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху