Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция mail - вместо кириллицы в теме приходят каракули
 
 автор: forma   (08.12.2008 в 21:11)   письмо автору
 
 

Кириллица в теме письма приходит в каракулях, именно кириллица, и именно в теме письма. Все остальное приходит как надо.

Тему письма и текст письма скрипт получает через форму, форма кодирует все данные в utf-8. Скрипт в заголовках письма тоже отправляет что кодировка utf-8.

В чем может быть проблема? Если поможет, вот скрипт:

<?php
...
$headers=    "From: support@example.com\r\n".
"Content-Type:text/html; charset=utf-8\r\n".
"Content-Transfer-Encoding:8bit\r\n"
mail("user@example.com"$_POST['subj'], $_POST['text'],$headers);
...
?>

  Ответить  
 
 автор: sim5   (09.12.2008 в 02:49)   письмо автору
 
   для: forma   (08.12.2008 в 21:11)
 

$sender = "=?UTF-8?B?" . base64_encode($_POST["subj"]) . "?=";
mail("user@example.com", $sender, $_POST['text'],$headers);

Но прежде чем отправить, может не мешало бы проверить $_POST['subj'] и $_POST['text'] ?

  Ответить  
 
 автор: forma   (09.12.2008 в 16:17)   письмо автору
 
   для: sim5   (09.12.2008 в 02:49)
 

Все проверяется, я же поставил '...'.

А можете объяснить, почему кодировать тему письма надо, а текст нет?

  Ответить  
 
 автор: sim5   (09.12.2008 в 16:27)   письмо автору
 
   для: forma   (09.12.2008 в 16:17)
 

Чего вы поставили, ели пост данные в функцию передаете? Хотя...
Потому, что кодировка указывается в заголовке после subject. Вы возможно встретите еще один совет - указывать кодировку до subject (когда фомируете заголовок отправки), не пользуйтесь этим советом, это не "прокатывает".

  Ответить  
 
 автор: forma   (25.02.2009 в 18:02)   письмо автору
 
   для: sim5   (09.12.2008 в 16:27)
 

>Чего вы поставили, ели пост данные в функцию передаете?
Что тут странного?
[поправлено модератором]

  Ответить  
 
 автор: sim5   (25.02.2009 в 18:49)   письмо автору
 
   для: forma   (25.02.2009 в 18:02)
 

Прежде чем что-то куда-то запихать, имею привычку это проверить, чего по вашей отправке почты не заметно.

  Ответить  
 
 автор: forma   (26.02.2009 в 01:04)   письмо автору
 
   для: sim5   (25.02.2009 в 18:49)
 

Я вам сказал что все данные проверил, но эти все проверки никак не относятся к заданному вопросу, поэтому были и заменены на '...' Но вы мне на слово не поверили, и пришли к выводу что я ничего не проверял судя по тому что ставлю пост переменный прямо в функцию.
Так вот, скажу я вам по секрету - они(пост переменные) прекрасно проверяются, и изменяются в случае надобности.;)
[поправлено модератором]

  Ответить  
 
 автор: Trianon   (26.02.2009 в 01:08)   письмо автору
 
   для: forma   (26.02.2009 в 01:04)
 

Содержимое тела письма тоже надо кодировать.

Ваша экспрессия мне непонятна совершенно.
Проверка не предполагает изменения данных.

  Ответить  
 
 автор: Keyses   (01.03.2009 в 02:03)   письмо автору
 
   для: forma   (08.12.2008 в 21:11)
 

Попробуй после темы явно указать кодировку.
Примерно так:

<?php
$subject 
'Тема письма;    
$to =  '
mail@example.com';
$headers = "Content-type: text/html; charset=\"windows-1251\"\r\n";
?>

  Ответить  
 
 автор: sim5   (01.03.2009 в 05:04)   письмо автору
 
   для: Keyses   (01.03.2009 в 02:03)
 

И поможет?!

  Ответить  
 
 автор: Keyses   (01.03.2009 в 16:26)   письмо автору
 
   для: sim5   (01.03.2009 в 05:04)
 

А то как же, у меня работает на все 100%. Просто структура заголовков такова, что после переменной, в которой содержится тема, нужно явно указывать её кодировку, ну и ниже ещё раз указываем кодировку текста письма.

  Ответить  
 
 автор: sim5   (01.03.2009 в 16:32)   письмо автору
 
   для: Keyses   (01.03.2009 в 16:26)
 

Забудьте об этом способе! Это заблуждение, и вы можете проверить это, отправляя свою почту на все возможные почтовые сервисы, просматриая различными почтовыми клиентами.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования