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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с сылками в письмах, после равно пропадают символы 
V
    Опции темы
Vigoroso
  Дата 14.3.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



после знака "=" в письме пропадают символы,
по проведенному опыту, есть подозрение что проблемы с кодировкой, потому что знак =аа превратился в черный ромб со знаком вопроса =)
на каком шаге возможны такие проблемы?
PM MAIL   Вверх
flashaa
Дата 14.3.2008, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Исходный текст письма в студию
PM MAIL   Вверх
Vigoroso
Дата 14.3.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



input: ... link: www.xxx.com/index.php?action=forgot_password&code=AS2DSF32WERDF32SDFSDF32RDSFF32DSFDSFDSF
output: ... link: www.xxx.com/index.php?action=rgot_password&code=AS2DSF32WERDF32SDFSDF32RDSFF32DSFDSFDSF



PM MAIL   Вверх
flashaa
Дата 14.3.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это я уже понял из слов. Нужно посмотреть все письмо с заголовками, которое было ПОЛУЧЕНО клиентом, а не тот текст, который скармливается ф-ции mail или её аналогам.  Надо понять что в письме не так, а затем уже смотреть скрипт.
Ведь речь идет о емейл-письме?
В мозиле thunderbird например можно посмотреть с помощью ctrl+u, выделив интересующее письмо.

Это сообщение отредактировал(а) flashaa - 14.3.2008, 16:56
PM MAIL   Вверх
Vigoroso
Дата 14.3.2008, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(flashaa @ 14.3.2008,  16:55)
Это я уже понял из слов. Нужно посмотреть все письмо с заголовками, которое было ПОЛУЧЕНО клиентом, а не тот текст, который скармливается ф-ции mail или её аналогам.  Надо понять что в письме не так, а затем уже смотреть скрипт.
Ведь речь идет о емейл-письме?
В мозиле thunderbird например можно посмотреть с помощью ctrl+u, выделив интересующее письмо.

X-Mailer: phpClient (mail)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Message-ID: <[email protected]>
Date: Fri, 14 Mar 2008 15:54:54 +0200 (EET)
X-Virus-Scanned: amavisd-new at xxx.com
Envelope-To: [email protected]

follow the link: http://www.xxx.com/?pop=forgot_password&am...J6UC7RCQGBZH2HN

Спасибо что подсказал посмотреть само письмо,
получается что текст приходит нормально, но Thunderbird ошибается при отображении содержимого, не знаю как остальные имэйл клиенты...
PM MAIL   Вверх
Feldmarschall
Дата 14.3.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Цитата(Vigoroso @  14.3.2008,  17:02 Найти цитируемый пост)
 charset=UTF-8

гм.
PM   Вверх
flashaa
Дата 14.3.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Feldmarschall
А меня больше смутило вот это
Цитата

Content-Transfer-Encoding: quoted-printable

http://msdn2.microsoft.com/en-us/library/m...(EXCHG.10).aspx
Попробуй поставить 8bit вместо quoted-printable
PM MAIL   Вверх
Feldmarschall
Дата 14.3.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



А, ну да. Разумеется! поэтому-то на знак = так неадекватно почтовый клиент и реагирует =)
PM   Вверх
flashaa
Дата 14.3.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хотя UTF-8 без кавычек - тоже нехорошо, не по стандарту. НО сразу видно, что вряд ли кодировка потому что
1) Нет русских букв, а портятся латинские, которые что в KOI, что в UTF имеют одинаковые коды
2) Я отправлял письма в такой небрежной форме задания кодировки, клиенты распознают
PM MAIL   Вверх
Vigoroso
Дата 14.3.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



пользуюсь email_message_class(), не полусается изменить этот хеадер =\
PM MAIL   Вверх
Feldmarschall
Дата 14.3.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



тогда кодируй тело в quoted printable
или используй другой класс.

очевидные, в общем-то, решения.
PM   Вверх
flashaa
Дата 14.3.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кодирование к quoted-printable (из PEAR::Mail_mime).. Т.е. ДЕкодирование, счас подыщу кодирование...
Код

/**
     * Given a quoted-printable string, this
     * function will decode and return it.
     *
     * @param  string Input body to decode
     * @return string Decoded body
     * @access private
     */
    function _quotedPrintableDecode($input)
    {
        // Remove soft line breaks
        $input = preg_replace("/=\r?\n/", '', $input);

        // Replace encoded characters
                $input = preg_replace('/=([a-f0-9]{2})/ie', "chr(hexdec('\\1'))", $input);

        return $input;
    }


Добавлено @ 18:55
По идее вот так:

Код

$input = preg_replace('/./ie', "'='.ord('$0')", $input);
$input = wordwrap($input, 76, "\r\n");


Это сообщение отредактировал(а) flashaa - 14.3.2008, 18:55
PM MAIL   Вверх
Vigoroso
Дата 14.3.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(flashaa @ 14.3.2008,  18:48)
Кодирование к quoted-printable (из PEAR::Mail_mime).. Т.е. ДЕкодирование, счас подыщу кодирование...
Код

/**
     * Given a quoted-printable string, this
     * function will decode and return it.
     *
     * @param  string Input body to decode
     * @return string Decoded body
     * @access private
     */
    function _quotedPrintableDecode($input)
    {
        // Remove soft line breaks
        $input = preg_replace("/=\r?\n/", '', $input);

        // Replace encoded characters
                $input = preg_replace('/=([a-f0-9]{2})/ie', "chr(hexdec('\\1'))", $input);

        return $input;
    }


Добавлено @ 18:55
По идее вот так:

Код

$input = preg_replace('/./ie', "'='.ord('$0')", $input);
$input = wordwrap($input, 76, "\r\n");

не очень как-то работает =)
Вот что пришло: 1408�101a�R�tiievgep�WvurP��w�t�vhRi�U�ghVTrwgw���fuhR�pt
PM MAIL   Вверх
flashaa
Дата 15.3.2008, 21:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Можно было посмотреть ссылку которую я дал и код декодирования, а не дожидаться всего на блюдечке с каемочкой.
Код

$input = preg_replace('/./ie', "'='.sprintf('X', ord('$0'))", $input);
$input = wordwrap($input, 76, "\r\n");


Это сообщение отредактировал(а) flashaa - 16.3.2008, 15:09
PM MAIL   Вверх
Vigoroso
Дата 17.3.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(flashaa @ 15.3.2008,  21:25)
Можно было посмотреть ссылку которую я дал и код декодирования, а не дожидаться всего на блюдечке с каемочкой.
Код

$input = preg_replace('/./ie', "'='.sprintf('X', ord('$0'))", $input);
$input = wordwrap($input, 76, "\r\n");

если бы это работало =)
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.

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


 




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


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

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