Найти в Дзене

Исправление кодировки в письмах Opencart 3

Проблема: при переключении в режим отправки писем по SMTP текст писем может приходить поврежденным — например, с неизвестными символами либо с лишними пробелами посреди слов. Проблема замечена на связке шаблон Prostore + SMTP-сервер Beget. Причина в механизме нарезки тела письма на строки в \system\library\mail\smtp.php, send() : устанавливается лимит для каждой строки исходя из ее кодировки, затем html нарезается по нему с помощью str_split(); граница может пройти прямо посередине слова Для исправления можно использовать готовый модификатор (в конце статьи) или поправить вручную – добавить в класс Smtp() метод str_split_word_aware() отсюда, и модифицировать код выше следующим образом: Как итог, теперь строки будут нарезаться по границе слов По данному рецепту собрал модификатор, тестировался на ocStore 3.0.3.7, ссылка ------------------------------------------------ Оригинал статьи: https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/

Проблема: при переключении в режим отправки писем по SMTP текст писем может приходить поврежденным — например, с неизвестными символами либо с лишними пробелами посреди слов. Проблема замечена на связке шаблон Prostore + SMTP-сервер Beget.

Причина в механизме нарезки тела письма на строки в \system\library\mail\smtp.php, send() : устанавливается лимит для каждой строки исходя из ее кодировки, затем html нарезается по нему с помощью str_split(); граница может пройти прямо посередине слова

Код доступен на https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/
Код доступен на https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/

Для исправления можно использовать готовый модификатор (в конце статьи) или поправить вручную – добавить в класс Smtp() метод str_split_word_aware() отсюда, и модифицировать код выше следующим образом:

Код доступен на https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/
Код доступен на https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/

Как итог, теперь строки будут нарезаться по границе слов

-4

Модификатор для Opencart

По данному рецепту собрал модификатор, тестировался на ocStore 3.0.3.7, ссылка

------------------------------------------------

Оригинал статьи: https://hdden.ru/instructions/ispravlenie-kodirovki-v-pismah-opencart-3/