Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка письма в UTF-8

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
snooker
Отправлено: 11 Ноября, 2008 - 17:32:01
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


Я отправляю письмо скриптом на PHP в кодировке UTF-8. Прописываю в заголовке кодировку. Когда письмо приходит, то возникает проблема. Тело письма читается нормально. Но заголовок, на mail.ru, например не читается. Пишется, что без темы. Но если на латинице, то заголовок читается. Как это исправить?
 
 Top
Morgan
Отправлено: 11 Ноября, 2008 - 19:09:57
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




возможно тут надо отправить первый заголовок о нужной кодировке до "темы" и второй для тела письма...
(Добавление)
покажи весь код лучше

(Отредактировано автором: 11 Ноября, 2008 - 19:15:55)

 
 Top
snooker
Отправлено: 11 Ноября, 2008 - 19:37:21
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


Morgan пишет:
возможно тут надо отправить первый заголовок о нужной кодировке до "темы" и второй для тела письма...
(Добавление)
покажи весь код лучше


$sm = mail("$remail",
"тема письма",
"текст письма",
"From: info@domen.ru\nReply-to: info@domen.ru\r\nContent-type: text/plain; charset=utf-8");
 
 Top
Morgan
Отправлено: 11 Ноября, 2008 - 19:56:05
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




вот посмотри...может поможет:

PHP:
скопировать код в буфер обмена
  1.  
  2. $subject = "Тема письма;
  3.                   $header = "From: \"Admin\" <info@domen.ru>\n";
  4.                    $header .= "Content-type: text/plain; charset=\"utf-8\"";
  5.                    $to = E-mail;
  6.                    $message = "Тело письма.";
  7.                    mail($to,$subject,$message,$header);
  8.  
 
 Top
snooker
Отправлено: 11 Ноября, 2008 - 20:30:46
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


[quote=Morgan]вот посмотри...может поможет:

Та же фигня. Причём странно, что в БАТЕ всё нормально. А на мэйл ру - нет....


Может можно как-то перекодировать письмо перед отправкой в виндовую кодировку? С ней таких проблем нет...
 
 Top
Morgan
Отправлено: 11 Ноября, 2008 - 21:06:13
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




Цитата:

Та же фигня. Причём странно, что в БАТЕ всё нормально. А на мэйл ру - нет....


Цитата:

Дело в том, что существуют почтовые программы, которые понимают заголовок Content-type, но не понимают русский текст в поле Subject, если это поле стоит до Content-type. В то же время, другие почтовые программы обязывают нас задавать Content-type последним заголовком в списке. Чтобы обойти эти препятствия, можно разместить поле Content-type сразу в начале и в конце списка заголовков:
PHP:
скопировать код в буфер обмена
  1.  
  2. $subject="Тема письма";
  3. $header="Content-type: text/plain; charset=\"windows-1251\"";
  4. $header.="From: "\Evgen"\ <evgen@mail.ru>";
  5. $header.="Subject: $subject";
  6. $header.="Content-type: text/plain; charset=\"windows-1251\"";
  7. $msg="Сторака 1\nСтрока 2\nСтрока 3";
  8. mail("name@mail.ru", $subject, $msg, $header);
  9.  



вот цитата из учебника "Решение проблемы кодировок", попробуй тоже самое только с utf-8
 
 Top
snooker
Отправлено: 12 Ноября, 2008 - 14:53:45
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


Morgan пишет:

вот цитата из учебника "Решение проблемы кодировок", попробуй тоже самое только с utf-8


А при таком способе отсылки он не только тему не показывает, но и от кого... Я вот думаю, может перекодирровать в виндовую кодировку перед отправлением? Только я не знаю, как это делать...
 
 Top
E-Pro
Отправлено: 12 Ноября, 2008 - 16:54:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $to = "Email куда отправлять письмо";
  2. $from = "От кого";
  3. $subject = "Тема письма";
  4.  
  5. $message = '
  6. <html>
  7.    <head>
  8.        <title>Привет</title>
  9.    </head>
  10.    <body>
  11.        Тело письма
  12.    </body>
  13. </html>';
  14.  
  15. $headers  = "Content-type: text/html; charset=windows-1251 \r\n";
  16. $headers .= "From: Чё хочешь <$from>\r\n";
  17.  
  18. mail($to, $subject, $message, $headers);


Код впринципе работает везде, нет проблем с кодировкой.
Попробуй если что меняй.
 
 Top
snooker
Отправлено: 12 Ноября, 2008 - 21:10:02
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


Но это даст html в письме. А я беспокоюсь, что спам-фильтры их не пропустят. Вот и хочу текст отсылать.
 
 Top
E-Pro
Отправлено: 12 Ноября, 2008 - 21:27:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Удали html)
 
 Top
Morgan
Отправлено: 12 Ноября, 2008 - 21:55:44
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $headers  = "Content-type: text/plain; charset=windows-1251 \r\n";
  3.  
 
 Top
evgenijj
Отправлено: 14 Ноября, 2008 - 19:38:41
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




snooker пишет:
Я отправляю письмо скриптом на PHP в кодировке UTF-8. Прописываю в заголовке кодировку. Когда письмо приходит, то возникает проблема. Тело письма читается нормально. Но заголовок, на mail.ru, например не читается. Пишется, что без темы. Но если на латинице, то заголовок читается. Как это исправить?

Отвечу цитатой
Цитата:
электронное письмо содержит две части: в одной (верхней) размещаются заголовки, а в другой (нижней) собствено текст письма. Отделены эти части друг от друга пустой строкой. Заголовки состоят из строк, в которых содержится тема письма (Subject), имя и адрес отправителя (From), получателя (To) и другая информация. В самом простом случае каждая строка содержит пару "ИмяЗаголовка: ЗначениеЗаголовка". Особенно необходимо подчеркнуть, что, согласно стандартам, в заголовках ни при каких обстоятельствах не должны содержаться символы, не присутствующие в ASCII таблице — латинские буквы, цифры, знаки пунктуации и псевдографики.

А ты в заголовок письма пихаешь что ни попадя. Вот и результат. Подробности здесь:
Как грамотно отправлять почту из скриптов

(Отредактировано автором: 14 Ноября, 2008 - 19:40:33)

 
 Top
Гость
Отправлено: 15 Ноября, 2008 - 11:17:41
Post Id


УДАЛЁН










Цитата:
Символы, не присутствующие в ASCII таблице — латинские буквы
С каких это пор из ASCII таблиц исчезли латинские буквы и цифры? Улыбка
 
 Top
snooker
Отправлено: 20 Ноября, 2008 - 12:58:28
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2008  


Помог: 0 раз(а)

[+]


Вообщем я проблему решил ортоганальным способом. Я сделал файл отправки в виндовой кодировке и отправляю заголовок и текст в ней же. Так работает. А с UTF-8 так и не зработало...
(Добавление)
evgenijj пишет:
Как грамотно отправлять почту из скриптов


Эта ссылка не работает.
 
 Top
untbox
Отправлено: 09 Сентября, 2014 - 16:14:43
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Morgan пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. $headers  = "Content-type: text/plain; charset=windows-1251 \r\n";
  3.  



Есть скрипт. Вопрос: как добавить кодировку UTF-8?

<?
if($_POST['name']){
$znach = array(
1 => $_POST['name'],
2 => $_POST['phone'],
3 => $_POST['web'],
);
mail("mail@gmail.com", "Заявка c ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1], $znach[3]);
}
Header("Refresh: 4; URL=".$_SERVER['HTTP_REFERER']);
?>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB