Имеется форма обратной связи на сайте, письма с неё приходят в Thunderbird нормально, на русском, а вот если высылать на gmail, то письма в кривой кодировке, приходится раскодировать, gmail я так понимаю понимает только UTF-8.
Так в чём же проблема, как сделать мою php форму чтобы и на gmail письма шли читаемые. Кодировка сайта 1251.
Привожу код формы, состоит из двух файлов:
order.php
<form method="post" action="order_send.php"> <table align="center" width="348" cellspacing="1" cellpadding="1" border="0"> <tr> <td valign="top">Ваше имя:</td> <td><input name="name" value=""></td> </tr> <tr> <td valign="top">E-mail:</td> <td><input name="mail" value=""></td> </tr> <tr> <td valign="top">Описание заказа:</td> <td><textarea name="text" cols="30" rows="7" wrap="VIRTUAL" value=""></textarea></td> <tr> <td></td> <td><input type="submit" value="Отослать"></form></td>
order_send.php
<?php if ($_POST['name'] != "" && $_POST['mail'] && $_POST['text'] ) { $subject="Form from my site"; $ip=$_SERVER["REMOTE_ADDR"]; $host = $ip; $mon=date(m); $day=date(j); $year=date(y); $hour=date(g); $min=date(i); $sec=date(s); $hour=$hour-2; if($hour<=0) { $hour+=12; } $ts = "$hour:$min:$sec on $day/$mon/$year"; $to="youremail@address.com"; $body=" Имя = $name Ваша почта = $mail Текст сообщения = $text Host: $host Time: $ts"; $email = "From: Form <$to>"; mail($to, $subject, $body, $email); ?> <html> <head> <title>Email Sent</title> </head> <body bgcolor="#ffffff" text="#666666"> <p> </p> <center> <table border="1" cellpadding="3" cellspacing="0" width="400" bordercolor="#919191" bgcolor="#E6E6E6"> <tr> <td width="100%"> <p><center><b><font color="#000000">Email was successfully sent to: <?php echo $to ?></font></b></center> </td> </tr> </table> </body> </html> <?php } else { ?> <html> <head> <title>Contact email error</title> </head> <body bgcolor="#ffffff" text="#666666"> <p><center> <table border="1" cellpadding="3" cellspacing="0" width="400" bordercolor="#919191" bgcolor="#E6E6E6"> <tr> <td width="100%"> <center> <b>There was an error with processing the email.</b><br> <p> <font color="#FF0000">Errors where:</font><br> <?php If (!$_POST['name']) echo "Имя field is empty<br>"; If (!$_POST['mail']) echo "Ваша почта field is empty<br>"; If (!$_POST['text']) echo "Текст сообщения field is empty<br>"; ?> <p> Email message wasn't sent </td> </tr> </table> </body> </html> <?php } ?>
Отредактировано lcraFTl (23-03-2007 10:30:43)
Отсутствует
lcraFTl
gmail я так понимаю понимает только UTF-8
Неправда Ваша. Всякие разные понимает.
Ядрёная консоль делает меня сильней!
Отсутствует
lcraFTl
хм а кодировку указывать будет Tux
а gmail не то что бы понимает только utf, он в нём работает, поэтому если письмо приходит без указания кодировки, оно будет выведено без перекодировки в том виде в каком есть,
а как иначе?
кстати стоит покурить мануал по функции mail() чует моё сердце, что там в example про кодировку указано
что то наподобии такого
<?php $body="<em>HTML</em> formatted <strong>Message</strong"; $headers = "From: info@mycompany.com \r\n"; $headers.= "Content-Type: text/html; charset=ISO-8859-1 "; $headers .= "MIME-Version: 1.0 "; /*notice there aren't any \r\n after the second two header additions. This is what made this version work correctly*/ mail("john@pacificprime.com", "An HTML Message", $body, $headers); ?>
Отредактировано Punk_UnDead (23-03-2007 12:26:19)
это не просто аватара - это древний символ изгнания зла
Отсутствует
Punk_UnDead
Теперь заголовок и само письмо видны нормально, но только при не открытом письме,
http://forum.mozilla-russia.org/uploaded/Gmail.jpg
а когда нажимаешь открыть письмо, то весть текст не читаемый. Почему так?
Отредактировано lcraFTl (23-03-2007 13:36:29)
Отсутствует
а когда нажимаешь открыть письмо, то весть текст не читаемый. Почему так?
У меня кстати наоборот бывает... с некоторыми чатами... Показывает чёрт знает что, а если зайти, то всё нормально
F.I.R.E.F.O.X.: Fearsome, Intimidating, Redhead-Eating Fiend from the Ominous Xenopolis
Скиньтесь мне на новый MacBook Pro! Кто сколько может!
Отсутствует
Modex
это потому что кодировка относится к телу письма
по стандарту в заголовке вообще 7 бит должно быть
в заголовок кодировка внедряется как-то боком
lcraFTl
без исходного текста ничего сказать не могу, сам такое делал было всё нормально
это не просто аватара - это древний символ изгнания зла
Отсутствует