Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Outlook не хочет понимать кодировку письма 
V
    Опции темы
begin
Дата 19.10.2009, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



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

Скрипт, отсылающий письмо, выглядит так:
Код

$adress='[email protected]';
$text='Текст заявки: '."\n\n".$text;
$subj='заявка с сайта';
$header="Content-type: text/plain; charset=\"windows-1251\"";
$header="From: 'Марфа и Мария' <[email protected]>";
mail($adress, $subj, $text, $header);
 

PM MAIL   Вверх
Ипатьев
Дата 19.10.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



ну правильно. кодировка в письме не указана.
PM MAIL   Вверх
begin
Дата 19.10.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(Ипатьев @ 19.10.2009,  20:32)
ну правильно. кодировка в письме не указана.

Как же, а вот строка:
Код

$header="Content-type: text/plain; charset=\"windows-1251\"";

PM MAIL   Вверх
Ипатьев
Дата 19.10.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



у меня тоже в кармане тыща рублей есть. только я их все равно должен.

попробуйте на 6 строчке вместо mail($adress, $subj, $text, $header); написать
echo $header;
что выведет?
PM MAIL   Вверх
brother79
Дата 20.10.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



А лучше используй iconv и переводи всё в utf. Ты конечно можешь заставить оутлук понимать твоё письмо, но будут другие, которые не знают cp1251, например под юниксом. Я раньше делал посылку письма тоже через 1251, и всё нормально работало в винде, но были клиенты, которым надо именно utf, хоть и везде прописанно, что это 1251


--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 20.10.2009, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Не надо писать о том, чего не знаете
"под юниксом" 1251 читается прекрасно
все проблемы с клиентами не от кодировки, а оттого, что письмо криво составлено.
PM MAIL   Вверх
brother79
Дата 20.10.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(Ипатьев @  20.10.2009,  10:29 Найти цитируемый пост)
все проблемы с клиентами не от кодировки, а оттого, что письмо криво составлено. 



Спорить не буду, смысла нету. Вот email

[email protected]

Если на этот ящик придёт письмо в cp1251 и оно нормально покажется на моём телефоне - соглашусь, а пока, увы, останусь при своём мнении.


--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 20.10.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Ах, уже не "юникс", а "телефон".
Ну да, давайте откопаем на помойке аппарат десятилетней давности, и начнем слать на него письма. 

Вы пришли в тему, в которой не поняли ничего. И дали совет, который никак не поможет автору топика. У которого проблема даже не в кодировке, а в синтаксисе PHP.

PM MAIL   Вверх
brother79
Дата 20.10.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(Ипатьев @  20.10.2009,  11:04 Найти цитируемый пост)
Ах, уже не "юникс", а "телефон".


Цитата(brother79 @  20.10.2009,  09:58 Найти цитируемый пост)
но будут другие, которые не знают cp1251,


Читаем внимательнее.


Цитата(Ипатьев @  20.10.2009,  11:04 Найти цитируемый пост)
У которого проблема даже не в кодировке, а в синтаксисе PHP.


Я вижу, вы дали ответ, в связи с чем не вижу смысла повторяться про синтаксис

Цитата(Ипатьев @  20.10.2009,  11:04 Найти цитируемый пост)
Ну да, давайте откопаем на помойке аппарат десятилетней давности, и начнем слать на него письма


Samsung SGH-G600

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

зы. У меня была рассылка, я прописал кодировки, оттестил на тех клиентах, которые были в т.ч. и просто в вебе, всё работало превосходно, пока не начали появляться жалобы на нечитаемую кодировку. В моём случае проблем с синтаксисом не было. Потом я переделал всё на utf, всё работает без проблем, в т.ч. и на телефоне. Про Юникс - я помню, что упоминал, можно и на нём проверить, только в настоящий момент у меня его нету, вчера винду поставил.

Также могу заметить, что ряд форумов - тоже криво присылает письма на виндовой кодировке, например http://forum.woweb.ru. Я не претендую, на то, что я всё знаю, но в моём случае использовался класс из фреймворка Symfony, который использует PHPMailer. Хедер руками я не выводил, не вижу смысла заниматься велосипедостроением. Разницу прекрасно видел как обрабатываются письма с неуказанной кодировкой и с явно указанной cp1251. 




--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 20.10.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(brother79 @  20.10.2009,  11:54 Найти цитируемый пост)
в настоящий момент у меня его нету, вчера винду поставил.

все с вами ясно
PM MAIL   Вверх
brother79
Дата 20.10.2009, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Код

                $result .= sprintf("Content-Type: %s; charset=\"%s\"",
                                    $this->ContentType, $this->CharSet);



Вот кстати как там реализованно то место, которое кодировку в письмо пишет. Если у вас других идей нету, как ещё в письмо кодировку можно указать - то свами тоже всё ясно.


--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 20.10.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Со мной давно все ясно. Я ни на что не претендую. 

Я только удивляюсь, как вообще почта до сих пор ходит, если большинство виндовых клиентов пишут либо в 1251, либо вообще в кои. Видимо, у получателей массовые галлюцинации, и им только кажется, что они правильно поняли текст.

А  код $result .= sprintf - это, конечно, образец. С которого надо брать пример. И к чему нам RFC на полсотни килобайт? Написал две строчки на пхп - и порядок.

PM MAIL   Вверх
begin
Дата 20.10.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(Ипатьев @ 19.10.2009,  20:32)
ну правильно. кодировка в письме не указана.

Спасибо, я и правда умудрился пропустить ошибку:
Код

$header="Content-type: text/plain; charset=\"windows-1251\"";
$header.="From: 'Марфа и Мария' <[email protected]>";

Во второй строке не поставил точку, и из-за этого переменная переназначалась, а не добавлялась. Вобщем уже все работает, всем спасибо  smile 
PM MAIL   Вверх
Ипатьев
Дата 20.10.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



begin, честно говоря, даже и в этом виде письмо мало будет похоже на читаемое.
Только ооочень дружелюбный клиент сможет его показать.
Вот здесь я приводил минимальный код, который отправляет письма корректно. Там, правда, нет поля From, но это все равно ненужно баловство.

brother79, я не очень понял суть вашей проблемы, но предполагаю, что проблема в том, что письмо состоит из нескольких частей. И вот для этих частей кодировка не была указана или указана неправильно.
Я не спорю, вполне может быть такой клиент, который не понимает какую-то особенную кодировку, японский SHIFT-JIS, например. Но. Реальность такова, что если русскоязычный пользователь пользуется программой, которая не понимает ничего, кроме утф, то он не сможет прочесть большую часть писем. Следовательно, проблема, скорее всего, была в несоблюдении стандартов при составлении письма. 
PM MAIL   Вверх
begin
Дата 20.10.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(Ипатьев @ 20.10.2009,  15:14)
begin, честно говоря, даже и в этом виде письмо мало будет похоже на читаемое.
Только ооочень дружелюбный клиент сможет его показать.
Вот здесь я приводил минимальный код, который отправляет письма корректно. Там, правда, нет поля From, но это все равно ненужно баловство.

Да, согласен. Мой нынешний код расчитан на конкретного клиента с конкретным почтовым клиентом. Письма у него теперь нормально читаются в Outlook, а у меня - в TheBat.
Конечно, когда буду делать скрипт рассылки для сайтов - то буду применять ваше "расширенное" решение данной проблемы. Там уже без этого будет не обойтись  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.