Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

В письмах не видны русские буквы


Recommended Posts

попробуй открыть файл catalog/view/theme/selato/template/mail/order_confirm.tpl

в Notepad++ и сконвертировать его в UTF без BOM, если не удастся, достань этот файл из дистриба и проверь его, там все ровно.

Надіслати
Поділитися на інших сайтах


Сделал. Не помогло. Видимо это не в кодировке дело, потому что вместо русских букв нет никаких символов, они просто вообще не отображаются, а если данные пользователя написаны по-англ, то все ок. А подскажите в каких файлах именно русский текст? Что-то не могу найти.

Надіслати
Поділитися на інших сайтах


Сделал. Не помогло. Видимо это не в кодировке дело, потому что вместо русских букв нет никаких символов, они просто вообще не отображаются, а если данные пользователя написаны по-англ, то все ок. А подскажите в каких файлах именно русский текст? Что-то не могу найти.

похоже все таки с кодировкой лажа, UTF похоже полностью не поддерживается.

проверь вывод заголовков сервера http://www.cy-pr.com/tools/header/

Надіслати
Поділитися на інших сайтах


Проверил. Вот что получилось:

HTTP/1.1 200 OK

Date: Fri, 07 Oct 2011 13:34:50 GMT

Server: Apache/2.2.3 (CentOS)

Set-Cookie: PHPSESSID=6dfb7ef162881fc6d45b1d8099479e12; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Set-Cookie: language=ru; expires=Sat, 07-Apr-2012 13:34:50 GMT; path=/

Set-Cookie: currency=RUB; expires=Sat, 07-Apr-2012 13:34:50 GMT; path=/

Connection: close

Transfer-Encoding: chunked

Content-Type: text/html; charset=utf-8

Надіслати
Поділитися на інших сайтах


Подставил в order_confirm.tpl вместо переменных просто русский текст, и он в письмах вообще не виден. Но если среди этого текста есть англ слова, их видно.

Надіслати
Поділитися на інших сайтах


Нашел ещё одного чела у которого такая же проблема. Оказалось что у нас один и тот же хостер и проблема эта началась в одно и тоже время. Вобщем в хостинге сказали что у них велись какие-то работы и надо перенастраивать свой почтовый клиент.

Подскажите в каком месте это всё перенастраивается?

Надіслати
Поділитися на інших сайтах


Интерактивных настроек, кроме выбора протокола обмена MAIL или SMTP, нет. Система - Настройки - Почта. Что-то твой хостер мутит воду. Можно попробовать поиграться с файлом .htaccess, но надо знать, что за ошибки. А вот ошибок как я понимаю нету...

можешь попробовать добавить в конец вот это

# пляски с кодировкой #
#http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset
AddDefaultCharset utf-8
#http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addcharset
AddCharset utf-8 *
<IfModule mod_charset.c>
CharsetSourceEnc utf-8
CharsetDefault utf-8
</IfModule>
# пляски с кодировкой #

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

Надіслати
Поділитися на інших сайтах


Добавил, ошибки не выдает, но и письма в том же виде приходят, без русских букв((

не, тогда нужно смотреть что выводит команда phpinfo, и сравнивать с выводом на рабочем хостере.

создаешь файл, например info.php следующего содержания

<?php
phpinfo();
?>

кладешь в корень сайта и потом вызываешь его http://mysite.ru/info.php

смотришь настройки и пытаешься понять, какие модули у них отсутствуют. Другого пути я не знаю.

посмотри, как настроены переменные Apache

Apache Environment

HTTP_ACCEPT_LANGUAGE 	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT_CHARSET 	windows-1251,utf-8;q=0.7,*;q=0.7

HTTP Headers Information

[i]HTTP Response Headers[/i]

X-Powered-By 	PHP/5.2.17
Connection 	close
Content-Type 	text/html; charset=UTF-8
Content-Language 	ru-RU
Надіслати
Поділитися на інших сайтах


Проверил. Также проверил кодировку БД и всех файлов. Всё в UTF-8.

HTTP_ACCEPT_LANGUAGE 	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT_CHARSET 	windows-1251,utf-8;q=0.7,*;q=0.7 

Connection 	close
Transfer-Encoding 	chunked
Content-Type 	text/html; charset=utf-8 

Но ведь насколько я понимаю это общие установки, а у меня проблема только в тексте приходящих заказчикам писем. Причём в теме письма русские буквы видны!

C webmail письма приходят нормально, то есть копать надо в OC.

Раньше письмо о подтверждении заказа приходило вот в таком виде:

Изображение

Сейчас вот так:

Изображение

Надіслати
Поділитися на інших сайтах


Давай сделаем так, забей для тестового пользователя мое мыло ea_generals(собака)ngs.ru и вышли мне письмо, я погляжу, что там с заголовками, может заголовки файла кривые, поэтому русского в html и не видно.

И еще на тотже адрес вышли файл *.tpl

Надіслати
Поділитися на інших сайтах


Спасибо!

Выслал.

в почтовом протоколе должно быть

Content-Transfer-Encoding: 8bit

------=_NextPart_bd19a241ecba5f137ae62f3e8e86ea8f_alt
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
а у тебя

Content-Transfer-Encoding: quoted-printable

------=_NextPart_11b218ae2db6112aa79024b6b714da4f_alt
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: [color="#FF0000"]quoted-printable[/color]
пинай хостера, пусть разбирается с кодированием почтовых сообщений.

вот тут есть много букв, что такое кодировки и какие нужно использовать http://gn.org.ua/cyrmnl-rus , но букв очень много :)

Змінено користувачем Zeppelin
Надіслати
Поділитися на інших сайтах


О, спасибо! Это я не догадался посмотреть.

А можно ли без хостера поменять, у них как я уже говорил, ответ простой: с webmail нормально письма шлются? да? Тогда исправляйте у себя!

Кстати, в письмах с webmail тоже кодировка Content-Transfer-Encoding: quoted-printable, но при этом всё нормально видно.

Надіслати
Поділитися на інших сайтах


если пофантазировать, то webmail получает текст из браузера и преобразование происходит без проблем. А в нашем случае идет "чистый вывод" текста в "поток" и в теории поддержкой UTF-8 должен заниматься почтовый сервер. Принят закодировать и передать далее. Если это было с самого начала, можно посмотреть, какие магазины хостятся у этого хостера и тупо оформить у них заказ :) и посмотреть.

Более точно сказать не могу, не сталкивался.

Есть хостер с бесплатным тестовым периодом с первого дня подачи заявки. sweb.ru у него с почтой все нормально. Можешь там разместься и проверить.

Надіслати
Поділитися на інших сайтах


У нас проблем нет, вот фрагмент кода, который отвечает за отправку мыла

if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . '=?utf-8?B?'.base64_encode($this->subject).'?=' . $this->newline;
		}

		$header .= 'Date: ' . date("D, d M Y H:i:s O") . $this->newline;
		$header .= 'From: ' . '=?UTF-8?B?'.base64_encode($this->sender).'?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . '=?utf-8?B?'.base64_encode($this->sender).'?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Return-Path: ' . $this->from . $this->newline;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
		$header .= 'MIME-Version: 1.0' . $this->newline;
		$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline;

		if (!$this->html) {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->text . $this->newline;
		} else {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

у нас все отдается правильно

$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

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

Змінено користувачем Zeppelin
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.