Перейти к содержанию
Форум поддержки пользователей VamShop

Как поменять кодировку письма с заказами?


Рекомендуемые сообщения

Всем здравствуйте.

Мне необходимо поменять кодировку письма с заказами клиентов с UTF-8 на Windows1251.

Можно ли это как-нить сделать?

Пробовал поменять как тут

http://vamshop.ru/forum/index.php?topic=742.0

Т.е. включил отправку html писем, и в html шаблонах писем

/templates/шаблон/mail/russian

вверху каждого файла добавил:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
[/code]

К сожалению у меня это не сработало!

Письма как отправлялись в UTF-8 так и отправляются.

Подскажите плз. как сменить кодировку письма?

Ссылка на сообщение
Поделиться на другие сайты

Вот с html-письма конечно запарка небольшая, я даже и не знаю как там правильно выставить кодировку, в html-письмо.

А текстовые письма если отправлять!?

Вот с текстовыми проблем нет.

Ссылка на сообщение
Поделиться на другие сайты

Да вроде никак, т.е. весь текст в базе данных магазина ведь в utf8 кодировке.

и если ты например сохранишь шаблоны письма /templates/шаблон/mail/russian в cp1251, то часть письма не будет читаемой.

А какая проблема с utf8?

Ведь всё email клиенты нормально умеют определять кодировку текста.

Ссылка на сообщение
Поделиться на другие сайты

Проблема с UTF-8 в письмах у меня следующая:

У меня магазин связан с 1С.

Связки автора Курманова А.

Раньше до перехода Vamshop на UTF-8 заказы из магазина и номенклатура в магазин нормально грузились в/из 1С.

После перехода Vamshop на UTF-8 Курманов пока смог осилить только загрузку номенклатуры из 1С в магазин. Выгрузку заказов он до сих пор к сожалению пока сделать не может.

Вот я и пытаюсь как-то по своему решить этот вопрос..... например заменой кодировки письма с UTF-8 на cp1251.....

Ссылка на сообщение
Поделиться на другие сайты

Тогда нужно наверное сохранить шаблоны писем в cp1251 в /templates/шаблон/mail/russian

А затем нужно поправить файл /send_order.php

именно там идёт формирование меток для письма.

Вот там сделать перекодировку из utf8 в cp1251 этих самых меток, тогда всё будет в cp1251.

Ссылка на сообщение
Поделиться на другие сайты

Позволю себе остановиться более подробно на этом вопросе.

Шаблоны писем в cp1251 я конечно сохранил.

А вот с перекодировкой меток для письма у меня пока сложности.....

Я так понимаю:

в файле /send_order.php

к каждой метке нужно добавить некий код/функию, этот код/функция будет давать команду метке на перекодировку из базы переменной которая записывается в тэмплэйт с UTF-8 в cp1251.

В общем нужен код/функция для перекодировки.... и она есть наверняка, просто надо найти нужную библиотеку и название функции....

Может кто-нить подскажет?

Ссылка на сообщение
Поделиться на другие сайты

Попробуй в send_order.php поменять:


$vamTemplate->assign('order_data', $order->getOrderData($insert_id));

$vamTemplate->assign('order_total', $order_total['data']);

[/code] на:
[code]
$vamTemplate->assign('order_data', iconv('UTF-8', 'CP1251', $order->getOrderData($insert_id)));

$vamTemplate->assign('order_total', iconv('UTF-8', 'CP1251', $order_total['data']));

Ссылка на сообщение
Поделиться на другие сайты

to Автор: VaM

Так к сожалению не получается. Выдает ошибки....

Подскажи плз. где можно письмам прописать кодировку? Ну чтобы они сами были в UTF-8, а кодировка должна быть прописана вин1251"

Нужно поменять

Content-Type: text/plain; charset = "utf-8"
[/code] на
[code]Content-Type: text/plain; charset = "win1251"

по идее в темплейтах писем должно быть.... в /templates/шаблон/mail/russian

но что-то там я такого не вижу....

Ссылка на сообщение
Поделиться на другие сайты

Кодировка письма сама ставится в зависимости от кодировки языка, указанного в Админке - Разоное - Языки.

Так а что за ошибки выдаёт?

Ссылка на сообщение
Поделиться на другие сайты

ошибки такие

Warning: iconv() expects parameter 3 to be string, array given in /usr/local/www/сайт/send_order.php on line 43

Warning: iconv() expects parameter 3 to be string, array given in /usr/local/www/сайт/send_order.php on line 45

[/code] и такая
[code]Fatal error: Smarty error: [in vamshop.20080324/mail/russian/order_mail.txt line 16]: syntax error: unidentified token ''' (Smarty_Compiler.class.php, line 1405) in /usr/local/www/сайт/includes/external/smarty/Smarty.class.php on line 1092

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

щас последние штрихи доделаем и я тут отпишу, что мы сделали....

Ссылка на сообщение
Поделиться на другие сайты

Тогда я даже и не знаю как правильно сделать, если честно.

Может как-то iconv можно использовать и на массивах, а не только на строках.

Нужно разбираться, не могу сказать.

Ссылка на сообщение
Поделиться на другие сайты
  • 6 months later...

тоже мучался с такой же штукой, нашел выход:

идем в

/includes/classes ищем class.phpmailer.php находим

var $CharSet (по умолчанию будет = iso... )

и ставим

var $CharSet = "cp1251";

Ссылка на сообщение
Поделиться на другие сайты

Так а в /inc/vam_php_mail.inc.php

Вроде и так есть строка:


$mail->CharSet = $_SESSION['language_charset'];

[/code]

Вот эта строка как раз и ставит кодировку по умолчанию, сейчас это utf-8.

Но если Вам помог описанный вариант, кто ж против, можно и так.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 month later...

  Цитата

Так а в /inc/vam_php_mail.inc.php

Вроде и так есть строка:


$mail->CharSet = $_SESSION['language_charset'];

[/code]

Вот эта строка как раз и ставит кодировку по умолчанию, сейчас это utf-8.

Но если Вам помог описанный вариант, кто ж против, можно и так.

если не затруднит - можно написать как должна выглядеть эта строка, чтобы письма приходили в KOI-8 ?

Ссылка на сообщение
Поделиться на другие сайты

Наверное как-то так:


$mail->CharSet = 'koi8-r';
[/code]

А также ведь нужно шаблоны писем в /templates/шаблон/mail/russian и /templates/шаблон/admin/mail/russian переделывать в другую кодировку.

Да и придётся копаться в скрипте, отправлющем письмо - /send_order.php

Что б данные о заказанных товарах тоже были в koi8-r

Не так всё просто вобщем, да и почему именно koi8-r?!

Ссылка на сообщение
Поделиться на другие сайты
Алексей Туркин

потому что Koi8 в письмах обеспечивала загрузку заказов в 1С.

в настоящее время моя проблема решена с другого края - оптимизирована загрузка в интеграции.

Жаль, что не все просто с изменением кодировки. кому-то может еще понадобиться :)

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...