На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > В письме, отправленном через PHP mail некоторые буквы в словах заменяются на �
      Подскажите, пожалуйста, в чем тут проблема? Например, такой код:
      ExpandedWrap disabled
        <?
        $text = 'PHP – это широко используемый язык сценариев общего назначения с открытым исходным кодом.
        Говоря проще, PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. Аббревиатура PHP означает "Hypertext Preprocessor (Препроцессор Гипертекста)". Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц. Подробнее о преимуществах PHP можно узнать здесь.
        Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP. Подробнее об этой возможность смотрите здесь. Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта. PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов. Даже если Вы впервые услышали о PHP, изучить этот язык не составит для Вас большого труда. Мы не сомневаемся, что изучив основы PHP в течение нескольких часов, вы уже сможете создавать простые PHP-скрипты. Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web-программирования, по крайней мере, в ближайшее время.';
        $headers= "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8";
        mail("my_mail@example.com", "Test", $text, $headers);
        echo( $text);

      Проблема в том, что в полученном письме в некоторых словах буквы заменяются на � (знак вопроса в ромбе). Если менять отправляемый текст, то проблема сохраняется.
      Вот пример полученного текста:
      PHP – это широко используемый язык сценариев общего назначения с открытым исходным кодом. Говоря проще, PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. Аббревиатура PHP означает "Hypertext Preprocessor (Препроцессор Гипертекста)". Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц. Подробнее о преимуществах PHP можно узнать здесь. Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP. Подробнее об этой возможность смотрите здесь. Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат вы� �олнения скрипта. PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов. Даже если Вы впервые услышали о PHP, изучить этот язык не составит для Вас большого труда. Мы не сомневаемся, что изучив основы PHP в течение нескольких часов, вы уже сможете создавать простые PHP-скрипты. Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминиро� �ание в области языков web-программирования, по крайней мере, в ближайшее время.

      Дополнено:
      Эта проблема проявляется на хостинге BlueHost. На другом хостинге Beget такой проблемы нет. Писал в службу поддержки BlueHost — решения не знают (
      Сообщение отредактировано: ViH -
        Помогли на Stackoverflow! Такое решение:
        Цитата
        Единственный нормальный способ обойти это, который я вижу — преобразуйте тело в base64 с доп. заголовком: Content-Transfer-Encoding: base64
        Согласно RFC 2045 стоит ещё самому на чанки(по 76 байт) порубить:
        $body = chunk_split(base64_encode($body));
          Всё так, до сих пор существуют околопочтове ПО, что не воспринимает 8битную кодировку :/
          Не на хостинге так на почтовом сервисе
            Текст сами набираете?
              Цитата negram @

              OperaMail таким балуется
              По сабжу:
              ExpandedWrap disabled
                $headers = 'Content-type: text/html; charset="utf-8"';

              должна быть именно ТАКОЙ, и никакой другой, если только Вы не используете другую кодировку (charset). Важную роль играют одинарные и двойные кавычки в этой строке. Если в письме НЕ будет html тегов, а просто текст, то можно эту строку писать так:
              ExpandedWrap disabled
                $headers = 'Content-type: text/plain; charset="utf-8"';
              Сообщение отредактировано: lexanoid -
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0266 ]   [ 15 queries used ]   [ Generated: 19.03.24, 08:45 GMT ]