shef 0 Опубликовано 23 марта, 2008 Жалоба Share Опубликовано 23 марта, 2008 Всем здравствуйте. Мне необходимо поменять кодировку письма с заказами клиентов с 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 так и отправляются.Подскажите плз. как сменить кодировку письма? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2008 Жалоба Share Опубликовано 24 марта, 2008 Вот с html-письма конечно запарка небольшая, я даже и не знаю как там правильно выставить кодировку, в html-письмо. А текстовые письма если отправлять!? Вот с текстовыми проблем нет. Ссылка на сообщение Поделиться на другие сайты
shef 0 Опубликовано 24 марта, 2008 Автор Жалоба Share Опубликовано 24 марта, 2008 ок Подскажите плз. как в текстовых письмах поменять кодировку с UTF-8 на Windows1251 ? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2008 Жалоба Share Опубликовано 24 марта, 2008 Да вроде никак, т.е. весь текст в базе данных магазина ведь в utf8 кодировке. и если ты например сохранишь шаблоны письма /templates/шаблон/mail/russian в cp1251, то часть письма не будет читаемой. А какая проблема с utf8? Ведь всё email клиенты нормально умеют определять кодировку текста. Ссылка на сообщение Поделиться на другие сайты
shef 0 Опубликовано 24 марта, 2008 Автор Жалоба Share Опубликовано 24 марта, 2008 Проблема с UTF-8 в письмах у меня следующая: У меня магазин связан с 1С. Связки автора Курманова А. Раньше до перехода Vamshop на UTF-8 заказы из магазина и номенклатура в магазин нормально грузились в/из 1С. После перехода Vamshop на UTF-8 Курманов пока смог осилить только загрузку номенклатуры из 1С в магазин. Выгрузку заказов он до сих пор к сожалению пока сделать не может. Вот я и пытаюсь как-то по своему решить этот вопрос..... например заменой кодировки письма с UTF-8 на cp1251..... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2008 Жалоба Share Опубликовано 25 марта, 2008 Тогда нужно наверное сохранить шаблоны писем в cp1251 в /templates/шаблон/mail/russian А затем нужно поправить файл /send_order.php именно там идёт формирование меток для письма. Вот там сделать перекодировку из utf8 в cp1251 этих самых меток, тогда всё будет в cp1251. Ссылка на сообщение Поделиться на другие сайты
shef 0 Опубликовано 28 марта, 2008 Автор Жалоба Share Опубликовано 28 марта, 2008 Позволю себе остановиться более подробно на этом вопросе. Шаблоны писем в cp1251 я конечно сохранил. А вот с перекодировкой меток для письма у меня пока сложности..... Я так понимаю: в файле /send_order.php к каждой метке нужно добавить некий код/функию, этот код/функция будет давать команду метке на перекодировку из базы переменной которая записывается в тэмплэйт с UTF-8 в cp1251. В общем нужен код/функция для перекодировки.... и она есть наверняка, просто надо найти нужную библиотеку и название функции.... Может кто-нить подскажет? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 марта, 2008 Жалоба Share Опубликовано 28 марта, 2008 Попробуй в 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'])); Ссылка на сообщение Поделиться на другие сайты
shef 0 Опубликовано 31 марта, 2008 Автор Жалоба Share Опубликовано 31 марта, 2008 to Автор: VaM Так к сожалению не получается. Выдает ошибки.... Подскажи плз. где можно письмам прописать кодировку? Ну чтобы они сами были в UTF-8, а кодировка должна быть прописана вин1251" Нужно поменять Content-Type: text/plain; charset = "utf-8"[/code] на [code]Content-Type: text/plain; charset = "win1251" по идее в темплейтах писем должно быть.... в /templates/шаблон/mail/russian но что-то там я такого не вижу.... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 31 марта, 2008 Жалоба Share Опубликовано 31 марта, 2008 Кодировка письма сама ставится в зависимости от кодировки языка, указанного в Админке - Разоное - Языки. Так а что за ошибки выдаёт? Ссылка на сообщение Поделиться на другие сайты
shef 0 Опубликовано 31 марта, 2008 Автор Жалоба Share Опубликовано 31 марта, 2008 ошибки такие Warning: iconv() expects parameter 3 to be string, array given in /usr/local/www/сайт/send_order.php on line 43Warning: 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 Мы уже сами по другому почти все сделали... письмо уже приходит в той кодировке, которая нам нужна.... щас последние штрихи доделаем и я тут отпишу, что мы сделали.... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 31 марта, 2008 Жалоба Share Опубликовано 31 марта, 2008 Тогда я даже и не знаю как правильно сделать, если честно. Может как-то iconv можно использовать и на массивах, а не только на строках. Нужно разбираться, не могу сказать. Ссылка на сообщение Поделиться на другие сайты
sergeytt 0 Опубликовано 28 октября, 2008 Жалоба Share Опубликовано 28 октября, 2008 тоже мучался с такой же штукой, нашел выход: идем в /includes/classes ищем class.phpmailer.php находим var $CharSet (по умолчанию будет = iso... ) и ставим var $CharSet = "cp1251"; Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 октября, 2008 Жалоба Share Опубликовано 28 октября, 2008 Так а в /inc/vam_php_mail.inc.php Вроде и так есть строка: $mail->CharSet = $_SESSION['language_charset'];[/code]Вот эта строка как раз и ставит кодировку по умолчанию, сейчас это utf-8.Но если Вам помог описанный вариант, кто ж против, можно и так. Ссылка на сообщение Поделиться на другие сайты
sergeytt 0 Опубликовано 28 октября, 2008 Жалоба Share Опубликовано 28 октября, 2008 ох спасибо и за этот Вариант :))) ... я его вероятно просмотрел! Ссылка на сообщение Поделиться на другие сайты
turkinaw 0 Опубликовано 7 декабря, 2008 Жалоба Share Опубликовано 7 декабря, 2008 Цитата Так а в /inc/vam_php_mail.inc.php Вроде и так есть строка: $mail->CharSet = $_SESSION['language_charset'];[/code]Вот эта строка как раз и ставит кодировку по умолчанию, сейчас это utf-8.Но если Вам помог описанный вариант, кто ж против, можно и так.если не затруднит - можно написать как должна выглядеть эта строка, чтобы письма приходили в KOI-8 ? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 декабря, 2008 Жалоба Share Опубликовано 7 декабря, 2008 Наверное как-то так: $mail->CharSet = 'koi8-r';[/code]А также ведь нужно шаблоны писем в /templates/шаблон/mail/russian и /templates/шаблон/admin/mail/russian переделывать в другую кодировку.Да и придётся копаться в скрипте, отправлющем письмо - /send_order.phpЧто б данные о заказанных товарах тоже были в koi8-rНе так всё просто вобщем, да и почему именно koi8-r?! Ссылка на сообщение Поделиться на другие сайты
Алексей Туркин 0 Опубликовано 8 декабря, 2008 Жалоба Share Опубликовано 8 декабря, 2008 потому что Koi8 в письмах обеспечивала загрузку заказов в 1С. в настоящее время моя проблема решена с другого края - оптимизирована загрузка в интеграции. Жаль, что не все просто с изменением кодировки. кому-то может еще понадобиться :) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 декабря, 2008 Жалоба Share Опубликовано 9 декабря, 2008 Понятно. Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения