Правильная кодировка исходящих писем в SugarCRM

Материал из SpravkaCRM.Ru - Справочник по CRM

Перейти к: навигация, поиск


Разработка и внедрение CRM-систем

Разработка и внедрение CRM-систем "под ключ" на базе SugarCRM. Любые задачи для любого вида бизнеса. Установка бесплатной CRM-системы бесплатно. Интеграция с существующей инфраструктурой, бухгалтерской программой, телефонией. Доработка существующих проектов. Обучение персонала.
+7 (495) 646-06-27
8 (800) 555-06-28 (звонок бесплатный)
evgenjekson (звонок бесплатный)
195938768
info@lemars.ru
узнать подробнее ...
CRM-система: SugarCRM
Версия: CE 6.4.1 (Другие версии)
Интерфейс: русский
URL:
Пользователь: jim, sarah, sally, max, will, chris
Пароль: как и имя пользователя
Тип доступа: пользовательский, без административных прав

С этой проблемой я столкнулся при сопровождении SugarCRM PRO 6.1.3: письма, отправляемые из системы (будь то тестовые письма с информацией о настройках почты, или разнообразные уведомления), приходили в кривой кодировке. Их просто невозможно было прочесть.

Немного покопавшись в коде, нашел в файле /include/phpmailer/class.phpmailer.php описание функции Send(). Внутри этой функции одной из переменных является строка с заголовками отправляемого письма. Выведя эти заголовки на просмотр:

    $header .= $this->CreateHeader();
    print_array($header,1);

видим такую картину в браузере:

Date: Thu, 9 Jun 2011 16:56:33 +0400
Return-Path: do_not_reply@aspartner.ru
To: =?ISO-8859-1?Q?=D0=90=D0=BB=D1=8C=D0=B1=D0=B8=D0=BD=D0=B0=20=D0=A0=D0=B8?= =?ISO-8859-1?Q?=D0=BD=D0=B0=D1=82=D0=BE=D0=B2=D0=BD=D0=B0=20=D0=A7=D1=83?= =?ISO-8859-1?Q?=D1=80=D0=B0=D0=BA=D0=BE=D0=B2=D0=B0?= 
From: =?ISO-8859-1?B?0J7QntCeICZxdW90O9CQ0KEt0J/QsNGA0YLQvdC10YAmcXVvdDs=?= 
Subject: ??? ????????? ?????? - ???????? ??????
Message-ID: 
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.codeworxtech.com) [version 2.3]
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="ISO-8859-1"

Во всем это многообразии строк нас интересует самая последняя:

Content-Type: text/plain; charset="ISO-8859-1"

Она говорит о том, что письмо посылается в чуждой русскому языку кодировке ISO-8859-1.

Порывшись в интерфейсе SugarCRM, нигде не нашел, где можно указать другую кодировку (потому и пишу данную статью в разделе для разработчиков, а не администраторов).

В общем, поиски этой кодировки, и как она подставляется, привел в все тот-же конфигурационный файл config.php, лежащий в корневой директории системы. Параметр default_email_charset содержит нужное нам значение:

  'default_email_charset' => 'ISO-8859-1',

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

Как и в настройке русского языка по-умолчанию, все необходимые изменения конфигурационного файла делаем в специальном файле config_override.php.

Открываем файл config_override.php, и добавляем соответствующую строчку в конец этого файла:

$sugar_config['default_email_charset'] = 'UTF-8';
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(SpravkaCRM.Ru - Справочник по CRM)
Навигация
наши проекты