Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль FlexiMail - PHPMailer інтеграція [Поддержка]


Recommended Posts

FlexiMail - PHPMailer інтеграція


FlexiMail - PHPMailer інтеграція


Модуль інтеграції бібліотеки PHPMailer в OpenCart 3 у вигляді повноцінного поштового драйвера. Модуль додає вибір "PHPMailer" у системних налаштуваннях пошти та виносить розширену конфігурацію SMTP, OAuth 2, DKIM і логування в налаштування самого модуля

 

Переваги PHPMailer

 

  • Надійний SMTP з коробки: дозволяє легко підключатися до зовнішніх поштових серверів (Gmail, Outlook, SendGrid, Ukr.net тощо) з підтримкою автентифікації (логін/пароль).
  • Захист від спам-фільтрів: бібліотека автоматично і коректно формує всі технічні заголовки листа (headers). Це критично важливо для успішного проходження перевірок SPF, DKIM та DMARC, щоб листи не летіли в спам.
  • Сучасне шифрування: повна підтримка протоколів безпеки SSL та TLS для захищеного з'єднання з поштовими серверами.
  • Розумна обробка помилок: має потужний режим відлагодження (SMTPDebug). Замість білої сторінки або мовчання ви отримуєте детальний покроковий лог спілкування вашого сервера з поштовиком, де чітко видно, чому саме не пройшов лист (невірний пароль, заблокований порт тощо).
  • Гнучка робота з контентом:
  • Автоматично створює альтернативну текстову версію листа (AltBody) для старих поштових клієнтів, якщо ви відправляєте HTML.
  • Кодування та мови: безпроблемна робота з UTF-8 та іншими кодуваннями. Символи в іменах відправників чи темах листів (наприклад, кирилиця або емодзі) ніколи не перетворяться на крякозябли.
  • Величезна спільнота та підтримка: бібліотека активно оновлюється під нові версії PHP та вимоги безпеки. 

 

Ключові можливості

Повний контроль SMTP-транспорту
- Шифрування з вибором схеми: STARTTLS, SMTPS (SSL), без шифрування
- Налаштування таймауту, типу автентифікації (LOGIN, PLAIN, CRAM-MD5, XOAUTH2)
- Підтримка самопідписаних TLS-сертифікатів для тестування та внутрішніх relay-серверів
- Окремі поля для From email / From name з fallback на налаштування магазину
 

OAuth 2 без зовнішніх залежностей
- Підтримка Google (Gmail, Google Workspace), Microsoft 365 / Azure AD, Yahoo
- Можливість вказати власний token endpoint для будь-якого OAuth 2-сумісного провайдера
- Власна реалізація обміну refresh_token на access_token (без league/oauth2-google та інших Composer-залежностей)
- Автоматичний кеш access_token з врахуванням TTL

 

DKIM-підпис вихідних листів
- Налаштування домену, селектора та приватного ключа прямо у формі модуля
- Підтримка ключів з парольною фразою
- Власне поле Identity (за замовчуванням використовується адреса відправника)

 

Логування та діагностика
- 4 рівня дебагу (1 - клієнт, 2 - клієнт+сервер, 3 - з'єднання, 4 - низькорівневі дані)
- Запис відладки у файл
- Кнопка "Надіслати тестовий лист" з виводом результату і хвоста debug-логу прямо у формі

 

Перевірка оновлень PHPMailer
- У тулбарі модуля - бейдж з поточною версією вендорованого PHPMailer і кольоровим індикатором стану
- Перевірка враховує поточну версію PHP сервера
- Дані перевірки кешуються для запобігання зайвих звернень до GitHub API

 

Безпечна архітектура

- Мінімальний OCMOD: лише додавання опції phpmailer в налаштування системи
- При вимкненні модуля поштовий потік не ламається
- Fallback на legacy SMTP-поля з налаштувань, якщо модуль вимкнено або не налаштовано

 

Швидкий старт

◦ Завантажте архів модуля через Доповнення → Установка доповнень
◦ Активуйте модуль у Доповнення → Доповнення → Модулі
◦ У Система → Налаштування → [магазин] → Пошта оберіть Поштовий протокол = "PHPMailer (FlexiMail)"

◦ Активуйте модуль у Доповнення → Доповнення → Модулі

◦ Натисніть Редагувати на рядку FlexiMail
◦ Приклад для Gmail: На табі "SMTP" заповніть:
   - Host: `smtp.gmail.com` (без префікса `tls://`)
   - Port: `587`
   - Encryption: `STARTTLS`
   - Username: ваша Gmail-адреса
   - Password: App Password (отриманий за посиланням https://security.google.com/settings/security/apppasswords)
◦ Збережіть налаштування
◦ На табі "Лог і тест" натисніть "Надіслати тестовий лист"

 

◦ У Google Cloud Console створіть OAuth 2 Client ID (тип "Web application")
◦ Додайте `https://developers.google.com/oauthplayground` у Authorized redirect URIs
◦ У [OAuth 2 Playground](https://developers.google.com/oauthplayground) увімкніть власні credentials у налаштуваннях
◦ Авторизуйтесь і отримайте refresh_token для scope `https://mail.google.com/`
◦ У FlexiMail на табі "SMTP" встановіть Auth Type = `XOAUTH2`
◦ На табі "OAuth 2" заповніть:
   - Provider: `Google (Gmail / Workspace)`
   - Client ID, Client Secret з Google Cloud Console
   - Refresh Token з Playground
   - User Email: ваша Gmail-адреса
◦ Збережіть і запустіть тестове надсилання

 

DKIM-підпис (опціонально)

◦ Згенеруйте RSA-ключ: `openssl genrsa -out dkim.private.pem 2048`
◦ Витягніть публічну частину: `openssl rsa -in dkim.private.pem -pubout`
◦ Додайте публічний ключ у DNS вашого домену як TXT-запис `<selector>._domainkey.<domain>`
◦ У FlexiMail на табі DKIM:
   - Увімкніть DKIM-підпис
   - Вкажіть домен
   - Вкажіть селектор (наприклад, `default`)
   - Вставте вміст файлу `dkim.private.pem` у поле "Приватний ключ"
◦ Запустіть тестове надсилання і перевірте підпис через mail-tester.com

 

Сумісність

- OpenCart/ocStore 3.0.x** (тестувалось на 3.0.3.x - 3.0.5.x).
- PHP 7.4+
- PHPMailer 6.12.0 (включено у дистрибутив)

 

 

 

ЗРОБЛЕНО З love.png.bf643facb4bcf846980b79e2f66811dd.png В ukraine.png.ed1e70902dfd21464575ffd3f5ba955b.png


 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.