крякозябры php stmp

lays

маргинал
Здравствуйте! проблема c отправкой почты, я совсем новичок так что прошу сильно сразу не ругаться, а разъяснить как говориться на пальцах.
есть код:
Код:
<form action="" method="post">
    Тема:  <input type="text" name="name" value="Тема"  onclick="this.value='';" onfocus="this.value='';" /><br />
    От кого: <input type="text" name="email" value=" Email"  onclick="this.value='';" onfocus="this.value='';" /><br />
    Кому: <input type="text" name="email2" value=" Email"  onclick="this.value='';" onfocus="this.value='';" /><br />
    Телефон: <input type="text" name="tel" value="Телефон"  onclick="this.value='';" onfocus="this.value='';" /><br />
    Текст: <input type="text" name="con" value="Текст"  onclick="this.value='';" onfocus="this.value='';"  /><br />
    <input type="submit"  name="submit" value="отправить" />
</form>

<?php
 echo($_POST["name"]);echo('<br>');
 echo($_POST["email"]);echo('<br>');
 echo($_POST["email2"]);echo('<br>');
 echo($_POST["tel"]);echo('<br>');
 echo($_POST["con"]);echo('<br>');
if (isset($_POST["submit"])) {
$smtp_server = "mail.site.com";
$port = 25;
$mydomain = "site.org";
$username = "";
$password = "";
$sender = $_POST["email"];
$recipient = $_POST["email2"];
$subject = $_POST["name"];
$content = $_POST["con"];

// Initiate connection with the SMTP server
$handle = fsockopen($smtp_server, $port);
fputs($handle, "EHLO $mydomain\r\n");

// SMTP authorization
fputs($handle, "AUTH LOGIN\r\n");
fputs($handle, base64_encode($username)."\r\n");
fputs($handle, base64_encode($password)."\r\n");

// Send out the e-mail
fputs($handle, "MAIL FROM:<$sender>\r\n");
fputs($handle, "RCPT TO:<$recipient>\r\n");
fputs($handle, "DATA\r\n");
fputs($handle, "To: $recipient\r\n");
fputs($handle, "Subject: $subject\r\n");
fputs($handle, "$content\r\n");
fputs($handle, ".\r\n");

// Close connection to SMTP server
fputs($handle, "QUIT\r\n");

}
?>
при получении сообщения русский текст который был введен в поле "текст" выглядит подобным образом "аПб€аОаВаЕб€аКаА" что делать? как быть? подскажите пожалуйста!
а еще если можно то, как в тело сообщения впихнуть и текст из поля куда номер вводят?
 

Redjik

Джедай-мастер
Что-то подсказывает, что нужно добавить заголовок с кодировкой в письмо
 

Royal Flash

-=MaestrO=-
Самый простой способ - конвертировать $content при помощи функции iconv() в нужную кодировку.

Хотя этот вариант предпочтительнее:
Что-то подсказывает, что нужно добавить заголовок с кодировкой в письмо
а еще если можно то, как в тело сообщения впихнуть и текст из поля куда номер вводят?
Как-то так:

PHP:
$content = $_POST["tel"].$_POST["con"];
И вообще-то, Вы не думали о том, что перед тем, как что-то куда-то отправить, не мешало бы проверить данные на валидность, чтобы вместо номера телефона Вам не отправили текст сообщения, в лучшем случае?
 

lays

маргинал
Что-то подсказывает, что нужно добавить заголовок с кодировкой в письмо
Самый простой способ - конвертировать $content при помощи функции iconv() в нужную кодировку.
не могли бы вы пожалуйста подробнее об этом рассказать?!
 

Redjik

Джедай-мастер
ну для начала - http://phpfaq.ru/na_tanke
там есть немного информации по заголовкам, да и для общего развития явно не помешает.

когда ты отправляешь письмо, то по сути ты отправляешь пользователю html страницу с некоторыми специфическими заголовками.
как прочитаешь, дай отмашку, будем дальше разбираться.
 

lays

маргинал
ну для начала - http://phpfaq.ru/na_tanke
там есть немного информации по заголовкам, да и для общего развития явно не помешает.

когда ты отправляешь письмо, то по сути ты отправляешь пользователю html страницу с некоторыми специфическими заголовками.
как прочитаешь, дай отмашку, будем дальше разбираться.
есть отмашка!
 

lays

маргинал
ЛЮДИ!!! ну помогите пожалуйста
пробую так:
$content = $_POST["con"];
$content = iconv("windows-1251","UTF-8",$content);
серавно какие то непонятные символы приходят, заголовок и остальные данные норм, а вот текст сообщения непонятные символы
 

Фанат

oncle terrible
Команда форума
Мда, таких кракозябр я не видел.

В общем, Royal Flash фигню тебе написал.
Данные надо не конвертировать, а указывать им правильную кодировку.
Попробуй добавить к заголовкам ещё такой

PHP:
Content-type: text/plain; charset="windows-1251"
и читай http://phpfaq.ru/mail

но вообще я удивляюсь, почему этот код работает
 

lays

маргинал
Мда, таких кракозябр я не видел.

В общем, Royal Flash фигню тебе написал.
Данные надо не конвертировать, а указывать им правильную кодировку.
Попробуй добавить к заголовкам ещё такой

PHP:
Content-type: text/plain; charset="windows-1251"
и читай http://phpfaq.ru/mail

но вообще я удивляюсь, почему этот код работает


сейчас почитаю) а пока вот тут сами можете пощупать и поглядеть на работу сего чуда)
 

Фанат

oncle terrible
Команда форума
Никогда не пиши пароль к своему сайту на форумах.
Не все люди по определению хорошие. Кто-то может из озорства тебе гадостей написать, а кто-то и из злого умысла
 

lays

маргинал
Никогда не пиши пароль к своему сайту на форумах.
Не все люди по определению хорошие. Кто-то может из озорства тебе гадостей написать, а кто-то и из злого умысла
да я знаю) поэтому для этого форума сейчас и был создан этот акаунт на бесплатном хостинге, и данные выкинуты сюда) так что все гуд!))
 

lays

маргинал
блин а там он ваще не работает) ну если что каждый сможет через ftp его скачать и поглядеть)
 

Фанат

oncle terrible
Команда форума
зачем скачивать через фтп то, что можно найти в гугле за 5 секунд?
но лучше потратить 10 и найти что-нибудь более приличное?

и да - на бесплатных хостингах почта не работает
 
Сверху