Совсем недавно столкнулся с проблемой которая заключается в следующем: после того как пользователь регистрировался у нас на форуме работающий под управлением PhpBB, ему на почту приходит сообщение с ссылкой для активации учетной записи и отображается письмо немного не так как хотелось бы:
На скриншоте видно что вместо темы сообщения пользователь видит: Не указана тема сообщения.
Ну кому это понравится? Верно! Никому!
Так же на скриншоте видно что тема сообщения указана — Subject: Активация нового пароля, но она не там где надо. После некоторых действий я получил вот такой результат:
Урааа! — подумал я сначала, как увидел тему сообщения «Активация нового пароля» на том самом месте где это и нужно, подумал работает, но когда открыл письмо увидел кракозябры какие то.
Сразу хотелось бы отметить что в качестве подопытного я взял сообщение об активации нового пароля, так как регистрироваться каждый раз чтобы проверить правильность отображения сообщения было бы долго и нудно да и не разумно. Но способ решения проблемы подойдет и для других видов сообщений таких как: активация учетной записи, уведомление о новых ответах в теме, напоминание пароля и тд.
Примечание! Прежде чем изменять файлы рекомендуется предварительно сделать резервные копии.
Так что же я сделал, что у меня появилось такое вот сообщение со знаками вопросов вместо русских букв. Всего навсего каракули появились после того как я открыл файл user_activate_passwd.txt (хранится он в папке email по пути кореньвашегосайта/language/ru/email/), в котором и хранится весь текст сообщения отправляемый пользователям, и поменял его кодировку на ANSI. В общем так делать не следует.
А теперь перейдем к решению проблемы. И поможет нам одна не плохая и бесплатная программа Notepad++.
В пример я буду брать тот файл который и редактировал каждый раз для решения данной проблемы, а именно файл user_activate_passwd.txt. Стоит учесть что если например при регистрации письмо отображается не корректно то и остальные уведомления наверняка будут отображаться точно также. Лучше всего проверить заранее каждый файл. Но об этом чуть позже.
Теперь нам необходимо скачать нужный нам файл user_activate_passwd.txt который находится по адресу ваш_домен/language/ru/email. Подключаетесь по FTP к своему сайту, находите этот файл и скачиваете в удобное для Вас место.
После того как файл скачан его необходимо открыть программой Notepad++ и указать кодировку UTF-8 (без BOM)
Кодировку необходимо изменить у каждого файла из папки email которая, напомню, расположена по адресу ваш_домен/language/ru/email.
Далее рассмотрим за какие уведомления отвечает каждый файл:
admin_activate.txt — Запрос на активацию пользователя. Уведомление приходит администратору форума в том случае, если в настройках установлена активация нового пользователя администратором.
admin_send_email.txt — Сообщение, которое приходит пользователю при рассылку администратором через администраторский центр.
admin_welcome_activated.txt — Уведомление пользователя об успешно активации его учетной записи администратором.
admin_welcome_inactive.txt — Сообщение уведомляет о том что учетная запись создана и ожидает активации администратором форума.
email_notify.txt — Сообщение приходит в том случае если у пользователя на форуме есть друг и он решил с ним поделиться какой-либо темой. В сообщении будет указана ссылку на тему, которой хотят поделиться с пользователем.
forum_notify.txt — Уведомления о появлении новых тем в том разделе форума на который подписан пользователь.
group_added.txt — Данное сообщение уведомляет пользователя о том что его перемещают в другую группу на форуме.
group_approved.txt — Уведомление об успешном подтверждении заявки поданной на вступление в какую-либо группу на форуме
group_request.txt — Сообщение приходит лидеру форумной группы, уведомляющее его о новой поданной заявке на вступление в группу от пользователя.
installed.txt — А это сообщение думаю не играет особой роли чтобы с ним возиться так как придет всего один раз после успешной установки форума.
newtopic_notify.txt — Уведомление о новых темах в разделах форума на которые подписан пользователь.
pm_report_closed.txt — Уведомление о закрытой жалобе на личное сообщение от другого пользователя.
pm_report_deleted.txt — Уведомление об удалении жалобы на личное сообщение от другого пользователя.
post_approved.txt — Данное сообщение приходит в том случае когда установлена настройка проверки сообщений модератором перед их размещением. Уведомляет об одобрении сообщения.
post_disapproved.txt — Данное сообщение приходит в том случае когда установлена настройка проверки сообщений модератором перед их размещением. Уведомляет о не одобренном сообщении пользователя и содержит причину отклонения сообщения.
privmsg_notify.txt — Уведомление пользователя о полученном новом личном сообщении.
profile_send_email.txt — Сообщение отсылается в том случае, когда пользователю другой пользователь отправляет письмо на e-mail адрес через форму, установленную на форуме.
profile_send_im.txt — Сообщение приходит если пользователю другой пользователь отсылает письмо с помощью сервиса IM.
report_closed.txt — Уведомление о закрытой жалобе на сообщение от другого пользователя в какой-либо теме.
report_deleted.txt — Уведомление аналогичное уведомлению в report_closed.txt, но уже об удаленной жалобе.
topic_approved.txt — В случае если на форуме установлена настройка проверки тем модератором перед их размещением, данное сообщение уведомит пользователя об одобрении созданной им темы.
topic_disapproved.txt — В случае если на форуме установлена настройка проверки тем модератором перед их размещением, данное сообщение уведомит пользователя об отклонении созданной им темы. В письме также указывается причина отклонения.
topic_notify.txt — Уведомляет пользователя о новых ответах в теме на которую он подписан.
user_activate.txt — Сообщение уведомляющее о деактивации администратором учетной записи пользователя. Сообщение содержит ссылку на повторную активацию.
user_activate_inactive.txt — Сообщение о деактивации учетной записи пользователя. Администратору нужно будет произвести повторную активацию.
user_activate_passwd.txt — Ну а с этим файлом думаю все понятно, так как о нем я и писал в статье, это сообщение с информацией по восстановлению забытого пароля.
user_reactivate_account.txt — Уведомляет пользователя о том, что он должен повторно активировать свою учетную запись.
user_remind_inactive.txt — Уведомление о том, что пользователь до сих пор не активировал свою учетную запись.
user_resend_inactive.txt — Сообщение уведомляет о том, что пользователь должен активировать свою учетную запись, перейдя по заранее сгенерированной ссылке.
user_welcome.txt — Сообщение уведомляет об успешной регистрации на форуме.
user_welcome_inactive.txt — И наконец последний файл, уведомляющий пользователя о том, что он должен активировать свою учетную запись, перейдя по заранее сгенерированной ссылке.
Вот мы и рассмотрели какой файл и о чем уведомляет пользователя.
Напомню еще раз что каждый файл необходимо открыть в текстовом редакторе Notepad++ и изменить кодировку на UTF-8 (без BOM).
Далее загружаем все файлы обратно на сервер, при запросе о замене соглашаемся.
И еще одно важное действие которое необходимо сделать чтобы все изменения вступили в силу, так это в админ панели форума во вкладке Общие необходимо сбросить кэш:
После того как кэш будет сброшен можно проверить правильность отображения сообщений которые приходят с форума. Для проверки, я пробовал восстановить пароль от одной учетной записи и получилось вот что:
Тема сообщения там где надо и кириллица отображается корректно. Думаю эта информация будет полезна тем кто столкнется с подобной проблемой.
Вот и все на этом.