Делаю тестовый заказ и на почту приходят письма в кодировке такой: _alt Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Р вЂР В»Р В°Р С–Р С•Р Т‘Р В°РЎР‚Р С‘Р С Р В·Р В° интерес Р С” РЎвЂљР С•Р Р†Р В°РЎР‚Р В°Р С LORESS. Ваш заказ получен Р С‘ поступит Р Р† обработку после подтверждения оплаты. в„– заказа: 36 Дата заказа: 03.01.2016 Состояние заказа: Р’ обработке Р ____________________________________________________________ _alt Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>LORESS - заказ 36</title> </head> <body style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000;"> <div style="width: 680px;"><a href="http://loress.ru/" title="LORESS"><img src="http://loress.ru/image/data/005-002.png" alt="LORESS" style="margin-bottom: 20px; border: none;" /></a> тех поддержка хостинга мне сейчас ответила так: "очевидно у вас в коде где-то переопределяется кодировка письма. Можно попробовать поискать где находится скрипт отправки и добавить заголовок кодировки" Теперь остался вопрос за малым где это смотреть))
Клас для отправки почты здесь: /system/library/mail.php Но там уже и так везде, где надо, стоят правильные заголовки для utf-8. Попробуйте отправить письмо на ящик другого почтового сервиса (лучше всего Gmail). Посмотрите, нет ли чего в журнале ошибок. Если устанавливали какие-то модули связанные с отправкой почты, отключите их.
Я 3 раза заходил в эту тему, у меня тоже самое было. Но так и не смог вспомнить как я это решил. Помню, что я тогда перешёл с бесплатного тарифа на хостинге и завёл ящик на яндексе (почта для домена). Т.е. ящик у меня стал админ@домен-сайта.ru При этом, чтобы сделать этот ящик, я менял настройки днс и правил mx записи. После этого ошибка исчезла, но что конкретно решило проблему - не подскажу. Возможно, просто так совпало, возможно, что-то из этого списка.
перепробовала все ящики: и гмайл и яндекс и от домена, везде одно и то же..в админке меняла в настройках и майл ставила и smtp, прописывала хост, вобщем все пункты.. ничего не помогло.. уже руки опускаются, что делать то? пока я еще только создаю сайт это не критично, но через неделю буду запускать, как с такими сообщениями вообще работать?( у меня кстати стоит симпл, ставил мне его сам создатель модуля Simpl лично, я ему доступ давала в админку, могут быть из за модуля проблемы? поковырялась и вот что то нашла.. в этом mail.php $this->text = iconv("cp1251", "UTF-8", $this->text); cp1251 это ведь тоже кодировка? так и должно быть? --- Добавлено, 4 янв 2016 --- и что вот это еще значит? Смотрю одни Error, так и должно быть? PHP: public function send() { if (!$this->to) { trigger_error('Error: E-Mail to required!'); exit(); } if (!$this->from) { trigger_error('Error: E-Mail from required!'); exit(); } if (!$this->sender) { trigger_error('Error: E-Mail sender required!'); exit(); } if (!$this->subject) { trigger_error('Error: E-Mail subject required!'); exit(); } if ((!$this->text) && (!$this->html)) { trigger_error('Error: E-Mail message required!'); exit(); } и вот это.. PHP: if (substr($reply, 0, 3) != 220) { trigger_error('Error: STARTTLS not accepted from server!'); exit(); } } if (substr($reply, 0, 3) != 250) { trigger_error('Error: EHLO not accepted from server!'); exit(); } fputs($handle, 'AUTH LOGIN' . $this->crlf); $reply = ''; if (substr($reply, 0, 3) != 334) { trigger_error('Error: AUTH LOGIN not accepted from server!'); exit(); } fputs($handle, base64_encode($this->username) . $this->crlf); if (substr($reply, 0, 3) != 334) { trigger_error('Error: Username not accepted from server!'); exit(); } if (substr($reply, 0, 3) != 235) { trigger_error('Error: Password not accepted from server!'); exit(); } } else { fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf); $reply = ''; while ($line = fgets($handle, 515)) { $reply .= $line; if (substr($line, 3, 1) == ' ') { break; } } if (substr($reply, 0, 3) != 250) { trigger_error('Error: HELO not accepted from server!'); exit(); } if (substr($reply, 0, 3) != 250) { trigger_error('Error: MAIL FROM not accepted from server!'); exit(); } if (!is_array($this->to)) { fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf); $reply = ''; while ($line = fgets($handle, 515)) { $reply .= $line; if (substr($line, 3, 1) == ' ') { break; } } if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) { trigger_error('Error: RCPT TO not accepted from server!'); exit(); } } else { foreach ($this->to as $recipient) { fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf); $reply = ''; while ($line = fgets($handle, 515)) { $reply .= $line; if (substr($line, 3, 1) == ' ') { break; } } if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) { trigger_error('Error: RCPT TO not accepted from server!'); exit(); } --- Добавлено, 4 янв 2016 --- Мальчики, я вроде решила проблему, не знаю еще толком даже..решила или нет. Вобщем в строке $this->text = iconv("cp1251", "UTF-8", $this->text); я cp1251 поменяла на ютф 8 тоже и стало приходить не кракозябра а вот такое И еще заметила только что, что в админке в деталях заказа прописаны а вот такие строки, так тоже должно быть? User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Accept Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Дата добавления: 04.01.2016 Правильно или нет? подскажите, пожалуйста. --- Добавлено, 4 янв 2016 --- вобщем получается, что я поменяла в mail.php через нотепад вот так: Вместо $this->text = iconv("cp1251", "UTF-8", $this->text); сделала $this->text = iconv("UTF-8", "UTF-8", $this->text); Я ничего этим не испорчу? сделала копию на всякий пожарный файла
Там такой строки вообще не должно быть (ни в стандартном ОК, ни в ocStore). Нужно было начинать вопрос с того, что у вас нестандартная сборка, а вы вообще не указали ни сборку ни версию. В этой строке не надо ничего редактировать, её надо просто полностью закомментировать. А почему не должно? Это обработка ошибок при отправке. Это данные браузера покупателя. Что вам в них не нравится? И вообще, всё, что у вас там есть - всё должно быть (по крайней мере, по замыслу автора сборки) за исключением сообщений об ошибках, которых у вас нет (по крайней мере, вы их не выкладывали). Так что перестаньте спрашивать про всё подряд. P.S. Код нужно оборачивать в соответствующие теги, а длинные тексты скрывать под спойлером.