Opencart 1.5 - исправить кодировку писем

Задание закрыто
Стоимость:2 000 рублей
Срок выполнения:2 дня
Варианты оплаты:По договоренности
Дата публикации:2025-01-30 19:36
Был(а) на сайте:2025-02-18 13:18

Opencart 1.5 - исправить кодировку писем

 
Задача

Письма с нашего сайта (о заказе, о поступлении товара и др.) отправляются через SMTP Яндекса. Сегодня все письма стали приходить без темы, т.е. тема письма внезапно стала пустая! Обратились в техподдержку Яндекса с этим и вот их ответ:

Добрый день Павел! Мы обновили правила по обработке заголовков писем. Теперь использовать кодировки UTF-8 нельзя. Рекомендуем формировать заголовки и тело писем в соответствии с RFC-стандартами ( https://datatracker.ietf.org/doc/html/rfc5322#section-2.2), корректно обрабатывая и экранируя непечатные символы.

Нужна помощь поправить это на сайте. Полагаю, что поправить нужно будет файл system/library/mail.php, который прилагаю. Могу дать доступ к сайту. Обращаю внимание еще раз, отправка не через PHPMAIL а через SMTP.

Цену пишите вы, я не знаю насколько сложная проблема!

Оставлять заявки могут только авторизованные пользователи.
Алексей Orionyus

Решаю вопросы

Специализация: Веб-разработка и дизайн
  • 5 000 руб2 дня
Здравствуйте!

Интересно.
Хочу разобраться.

Примеры моих работ

Wordpress услуги и сервис
Joomla & WP услуги и сервис
Joomla услуги и сервис
Анатолий Артемов
Специализация: Веб-разработка и дизайн
  • 3 000 руб2 дня
Могу сделать
Евгений М

Fullstack Developer * API, PHP, JS, CSS * Web Designer

Специализация: Веб-разработка и дизайн
  • 2 000 руб2 дня
Здравствуйте!
Готов выполнить очень качественно ваш проект.
Обширный опыт: API, PHP, JavaScript, Node.js, CSS...
Программирование — WordPress, MODX, Bitrix, OpenCart, Laravel, и др.;
Графический и интерфейсный дизайн: Adobe, Figma, Lunacy.
Напишите мне, обсудим детали,
С Уважением, Евгений.
Евгений Голубев

WhatsApp - 79647133553 | Telegram - @divside

Специализация: Веб-разработка и дизайн
  • 2 000 руб2 дня
Приветствую.
Не пишу шаблонных ответов.
Просто информирую вас о том, что готов выполнить проект лучше чем 90% фрилансеров.

МОИ КОНТАКТЫ:
WhatsApp | https://wa.me/79647133553
Telegram | https://t.me/divside
Работы по сайтам | https://www.behance.net/divside

*** Цена в заявке номинальная. Точная цена после обсуждения. При обращении прошу высылать ссылку на проект ***


.

Примеры моих работ

UI-UX дизайн и разработка сайтов
Инфографика, презентации, баннеры
Монтаж видео, 2D анимация, reels, shorts
Евгений Крупченко
Специализация: IT-технологии и Разработка
  • 2 000 руб1 день
в принципе уже вижу в вашем mail.php где поправить.
можно попробовать и проверить сразу.
пишите.
Владимир Малашенков
Специализация: Веб-разработка и дизайн
  • 2 000 руб2 дня
Готов выполнить задание. Занимаюсь созданием и доработкой сайтов на OpenCart более 10 лет. Примеры моих работ см. в портфолио.
Мои контакты:
Телеграм: v21021
Скайп: volma1803
Евгений М

Кодинг дизайна. Программирование продаж. Рост лидов!

  • 12 000 руб2 дня
Здравствуйте!
Я могу вам предложить:
Логотип;
Дизайн веб-сайта и мобильного приложения;
Адаптивная CCS+JS вёрстка сайта;
Крутой "Сайт под ключ";
Программирование – WordPress, ModX, Bitrix, OpenCart, Drupal, и др.;
Программирование очень сложных проектов – Django, Symfony, Laravel;
Доработка и техподдержка проектов на любых фреймворках;
Наполнение сайтов с погружением в тему;
Разработка "под ключ" мобильных приложений;
Продвижение и контекстная реклама с прозрачными отчётами за месяц.
Здравствуйте.
По факту нужен файл system/library/mail/smtp.php
Но я посмотрел его на гитхабе, и могу сказать, что надо заменить 3 строчки в нем, а именно кодирование base64 на quoted-printable. То есть
$header .= 'Subject: =?UTF-8?B?' . base64_encode($this->option['subject']) . '?=' . PHP_EOL;
меняем на
$header .= 'Subject: =?UTF-8?Q?' . quoted_printable_encode($this->option['subject']) . '?=' . PHP_EOL;

и всё.
аналогично можно поступить со строчками From и Reply-to.
но если письма приходят только с пустой темой, а все остальное нормально, то можно и не трогать.
Если сами не разберетесь, готов заняться.
Илья Г.

Разработка IT-решений на заказ, качественно и в срок.

Специализация: Веб-разработка и дизайн
  • 2 000 руб3 дня
День добрый, Павел.

Помогу разобраться с проблемой. Качественно проверю решение. Детально опишу внесенные изменения.

Для исправления ошибки понадобится доступ к серверу.

С уважением, Илья.
Доброго времени суток. Я mail.php поправил поставил метки, где изменил.
Важно:
1. Убедитесь, что на сервере включено расширение `mbstring`.
2. Все входящие данные (темы, имена) должны быть в кодировке UTF-8.
3. Для SMTP-отправки изменения не требуются — тема и имя отправителя уже закодированы корректно.

Тестирование:
После внесения правок проверьте отправку писем:
- С кириллическими темами: `"Тестовый заказ №123"`
- С спецсимволами: `"Ваш счет: 100$"`
- С длинными темами (>75 символов).

Темы должны отображаться корректно в почтовых клиентах.

ТГ. @KuzyaevMaxim
Андрей
Специализация: IT-технологии и Разработка
  • 2 000 руб2 дня
Здравствуйте, Павел.
Если ещё актуально, готов сделать за ваш бюджет.
Напишите в телеграм для быстрой связи.

Примеры моих работ

Юрист
Раскраска национальные костюмы
Роман Митюшин
Специализация: Веб-разработка и дизайн
  • 3 000 руб2 дня
Что нужно сделать
Изменение кодировки заголовков: Вам нужно убедиться, что заголовки формируются в соответствующей кодировке. Для этого можно использовать стандартные наборы символов (например, ASCII) и экранирование символов.

Правки в mail.php: Если вы предполагаете, что нужно изменить файл system/library/mail.php, я бы рекомендовал внести следующие изменения:

Убедиться, что заголовок Subject кодируется корректно согласно стандарту RFC 5322.
Проверить, что нет непечатных символов в заголовках.
Пример
Вот модификация кода, которая может помочь:

php
public function setSubject($subject) {
// Убираем возможные непечатные символы и скрытые символы
$subject = $this->cleanSubject($subject);

// Форматирование заголовка
$this->headers[] = 'Subject: ' . $subject;
}

private function cleanSubject($subject) {
// Удаляем непечатные символы
return preg_replace('/[^\x20-\x7E]/', '', $subject);
}
Добрый день, не раз сталкивался с данной проблемой, готов помочь!
андрей фролов
Специализация: Обучение и Образование
  • 2 000 руб5 дней
Предоставлю исправленный код

Оставлять заявки могут только авторизованные пользователи.

Другие открытые задания:

поиск заданий