+380(66)433-69-36 | |
+380(66)433-69-36 | |
+380(66)433-69-36 |
- BitLocker с GUI под linux
- Ищем вирус elTest
- Работаем с бесплатным SSL сертификатом Letsencrypt с помощью certbot
- Синхронизация ресурсов с удаленного сервера локально
- Применение нестандартного SEO и статус 404
- MySQL синхронизируем права с разных серверов
- IPSec VPN соединение между офисами.
- "Зеркало" сайта на стороне. Донастраиваем nginx
- Дефрагментация таблиц всех баз MySQL
- Месяц в родительном падеже strftime PHP
- INIT скрипт для Dropbox
- osCommerce VAM Edition 226. Ошибки
- PositiveSSL порядок сертификатов
- osCommerce. Создаем модуль доставки
- Восстановление mySQL баз данных
- osCommerce.Перенос магазина в другой домен
- osCommerce.Прячем адмику
- osCommerce. Продление жизни сессий
- osCommerce. Создаем платежный модуль
- 10 причин выбрать нас
- GRUB2 восстановление
- osCommerce не пересчитывает общую сумму заказа
- Список потенциально опасных скриптов
- Отправка файлов из Dropbox по e-mail
- "Черный список" почтовых доменов
- Боремся с назойливыми иностранцами
- Яндекс-Диск, и стоит ли им пользоваться.
- Обновление модуля Интеркассы для osCommerce
- Веб-почта на сайте хостинга
- Подключение Outlook Express к хостингу
osCommerce PHPMailer
Не секрет, что в osCommerce в качестве почтового агента используется phpMailer. Этот почтовый класс позволяет очень многое - и потому не будем останавливаться на всех его возможностях. Речь пойдет о том, как отправляются письма из магазина по-умолчанию. Ничего секретного в этом нет - все просто до безобразия - отправляется как plain-text или HTML в зависимости от того, какая опция выбрана в административной панели в разделе "Настройки" - "Настройка E-Mail". Но есть одна особенность и она вылазит в версиях, в которых по-умолчанию используется кодировка UTF-8. Особенность состоит в том, что при передаче письма его тело разбивается на абзацы по-умолчанию примерно в 453 символа. Это приводит к тому, что письмо приходит адресату в "искаженном" виде на месте, где phpMailer вставил символ абзаца. Изучая детальней этот процесс - оказалось, что письмо по-умолчанию отправляется в кодировке "8Bit" - т.е. используется 8-ми битовый обычный текст а пересылается-то 16 битовый! Естественно что при этом даже несмотря на алгоритм выравнивания тела письма, примененный в классе текст все-таки искажается. Решение этой проблемы оказалось достаточно простым. Пришлось в файле general.php (функция to_mail) добавить строчку вида:$message->Encoding='base64'; сразу после установки кодировки письма ($message->Charset=CHARSET;). Таким образом текст письма кодируется с применением MIME кодирования, формат которого предусматривает разбиение письма на абзацы по 76 символов, использование 7-битной кодировки и так далее. Иными словами письмо приобретает некоторый "иммунитет" к некорректным автоматическим процедурам форматирования. Одно но. Подобный подход увеличивает размер письма процентов на 30%. Но разве сейчас это принципиально? зато работает надежней.