Отзывы пользователей
Что нового в версии 1.1.0
Размещено
Велике оновлення надійності і відповідності сучасним вимогам поштових провайдерів.
Модуль еволюціонував із простого SMTP-конфігуратора у повноцінну поштову платформу. Тепер у вашому розпорядженні: журнал повідомлень із можливістю повторного надсилання, фонова (асинхронна) доставка листів, автоматична черга з повторними спробами відправки та фіксацією помилок, повна відповідність вимогам Gmail до масових розсилок, а також маршрутизація через різні SMTP-сервери залежно від типу листа.
Додано
Журнал листів і черга
- Окрема вкладка "Журнал листів" з фільтрами (статус, отримувач, тригер), пагінацією, модалкою з повними деталями кожного листа
- Кнопка "Повторити" біля кожного рядка для перевідправки
- Автоматичне визначення джерела відправки: система самостійно фіксує тригер, який запустив листа (mail/order::index, mail/order::alert, mail/forgotten::index тощо). У журналі чітко відображається, яка саме подія або модуль на сайті ініціювали відправку.
- Фіксація часу відповіді сервера (duration_ms): для кожного успішно відправленого листа відображається тривалість SMTP-з'єднання. Це дозволяє миттєво виявити затримки в роботі поштового сервера.
Асинхронна доставка
- Нове налаштування "Режим доставки" з 3 варіантами роботи:
- sync (синхронний) — класичний режим (як раніше), коли покупець чекає на завантаження сторінки "Дякуємо за замовлення", поки сайт відправляє листа.
- async_finish (асинхронний — рекомендовано) — фонова доставка. Покупець миттєво бачить успішне оформлення замовлення, а відправка листа завершується у фоні, не змушуючи людину чекати.
- queue (черга) — листи стають у чергу і відправляються за розкладом (CRON), що повністю знімає навантаження з сайту в момент покупки.
- Режим за замовчуванням (async_finish): тепер HTTP-відповідь віддається покупцеві ще до початку з'єднання з SMTP-сервером. Завдяки роботі у фоновому режимі, сторінки оформлення замовлення (checkout), форми зворотного зв'язку та відновлення пароля більше ніколи не зависають — навіть якщо сам поштовий сервер тимчасово недоступний.
- Автоматичний перехід на синхронний режим (Graceful fallback): якщо на вашому сервері використовується застарілий режим роботи PHP (mod_php) замість сучасного FPM, модуль не видасть помилку. Він автоматично та безпечно переключиться на класичний синхронний режим доставки.
Надійна черга повідомлень (delivery_mode = queue):
- Режим для гарантованої доставки листів із вбудованим механізмом захисту від втрати даних:
- Автоматичні повторні спроби (Retry): якщо поштовий сервер тимчасово недоступний, модуль не видасть помилку, а зробить серію повторних спроб відправити лист пізніше.
-
Ізоляція проблемних листів (Dead-letter): якщо лист так і не вдалося доставити після всіх спроб (наприклад, через неіснуючу адресу), він переміщується в окремий "проблемний" список.
Це дозволяє зберегти дані та не забивати основну чергу.
- Лист пишеться у БД зі статусом `pending`, повертається миттєво
- Розумні інтервали повторних спроб (Exponential backoff): CRON-скрипт обробляє листи в черзі, які очікують відправки, збільшуючи паузи між спробами у разі помилок сервера. Інтервали зростають поступово, щоб не перевантажувати систему: 1 хв > 5 хв > 15 хв > 1 год > 4 год > 24 год.
- Переміщення у "проблемний" список (Dead-Letter Queue) після 6 невдалих спроб: якщо лист не вдалося відправити 6 разів поспіль, модуль припиняє марні спроби та ізолює його. Це слугує чітким сигналом для адміністратора сайту, що з адресою отримувача або контентом листа є проблема, яка потребує уваги.
- Безпечний запуск через URL (HMAC-токен): для запуску черги за розкладом передбачено публічний URL-адрес (endpoint). Доступ до нього захищено за допомогою авторизації через HMAC-токен, що повністю виключає ризик стороннього втручання чи несанкціонованого виклику скрипта зловмисниками.
- отова команда для CRON в один клік: у формі модуля ви знайдете вже сформований рядок для налаштування планувальника на хостингу, а також зручну кнопку для швидкого копіювання.
- Захист від дублювання листів (Атомарний запуск): завдяки спеціальному блокуванню рядків у базі даних на рівні запитів, модуль повністю захищений від конфліктів (race condition) у разі паралельного запуску кількох CRON-задач. Кожен лист буде гарантовано оброблено і відправлено лише один раз.
Відповідність вимогам Gmail (RFC 8058 One-Click Unsubscribe): модуль автоматично додає до листів заголовки для відписки в один клік. Це є обов'язковою умовою для всіх, хто відправляє понад 5000 листів на день. Завдяки цьому ваші розсилки не блокуватимуться поштовими сервісами та гарантовано потраплятимуть у Вхідні.
- Автоматичні заголовки `List-Unsubscribe: <mailto:...>, <https://...>` і `List-Unsubscribe-Post: List-Unsubscribe=One-Click`
- Захищене посилання для відписки (Публічний Unsubscribe Endpoint): модуль генерує безпечні URL-адреси для скасування підписки, використовуючи сучасні стандарти захисту:
- Криптографічний підпис (HMAC-SHA256): гарантує, що посилання неможливо підробити або підібрати.
- Обмеження терміну дії посилання для додаткової безпеки.
- Захист від хакерських атак (hash_equals): порівняння хешів у системі захищене від атаки за часом (Timing attacks), що робить процес відписки стійким до злому.
- POST-обробка для Gmail one-click button (повертає 200 OK plain - як вимагає RFC 8058)
- GET-обробка з HTML-сторінкою підтвердження для ручного click з браузера
- Окрема вкладка "Заблоковані" з фільтрами, ручним додаванням, видаленням
- Автоматична перевірка перед відправкою (Pre-send check): система миттєво звіряє отримувачів із базою відписок. Якщо клієнт раніше відмовився від розсилки, модуль автоматично скасовує відправку листа та робить відповідну помітку в журналі: Suppressed: unsubscribe (since YYYY-MM-DD) (Відхилено: відписка від дата/місяць/рік). Це захищає ваш домен від скарг на спам.
- Конфігурований mailto-варіант unsubscribe (за дефолтом використовує From-адресу магазину)
- Окремий секрет (`compliance_unsub_secret`) генерується автоматично при першому відкритті форми
Маршрутизація SMTP по типу листа
- Нова вкладка «Маршрутизація» з гнучким налаштуванням правил: дозволяє легко розподіляти потоки листів через різні SMTP-сервери.
- Зручний інтерфейс додавання, редагування та керування правилами.
- Динамічний список: ви можете створювати будь-яку кількість правил у кілька кліків, повністю контролюючи логіку відправки.
- Гнучкі шаблони пошуку та фільтрації (Wildcard-патерни): ви можете налаштовувати правила маршрутизації або пошуку відразу для цілих груп листів за допомогою символу зірочки (*). Це дозволяє легко об'єднувати схожі події. Приклади використання: mail/order::* (усі листи замовлень), *::alert (усі типи сповіщень), mail/affiliate_* (усі листи для партнерів) або точний збіг mail/forgotten::index
- Перевизначення SMTP host / port / secure / username / password / from_email / from_name для конкретних типів листів
- OAuth і DKIM лишаються глобальними - їх не можна перевизначити для окремого тригера
Управління сховищем
- Автоматичне очищення журналу (Housekeeping): спеціальний фоновий процес запускається раз на годину через CRON для автоматичного видалення застарілих логів і збереження оптимального розміру бази даних. Процес захищено від повторного накладання завдяки системі блокування через кеш-файл, що гарантує стабільну роботу сервера без зайвого навантаження.
- Гнучкі правила зберігання історії (Retention policy): щоб база даних сайту не перевантажувалася, автоматичне очищення працює за чіткими та безпечними часовими лімітами:
- Успішно відправлені (Sent): видаляються через 30 днів (цього терміну цілком достатньо для перевірки історії).
- Помилки доставки (Failed): зберігаються до 180 днів для детального аналізу та розбору можливих проблем.
- Критичні помилки (DLQ): листи з "проблемного" списку ніколи не видаляються автоматично. Вони залишаються в системі доти, доки адміністратор не перевірить або не видалить їх вручну.
- Розумне стиснення історії (Body retention): оскільки текст самих листів займає найбільше місця в базі даних, модуль використовує дволінійне очищення:
- Текст листів (body_text/body_html): автоматично видаляється (замінюється на NULL) для успішно відправлених листів, які старші за 7 днів.
- Збереження метаданих: уся важлива інформація для аналітики - адресат (to), тема (subject), статус, помилки та час відправки - залишається недоторканою.
- gzdeflate стиснення body_html > 1KB у середньому економить ~70% обʼєму (типовий OC mail-template ~30 KB стискається до ~6-8 KB)
- Прозоро декомпресія при читанні з журналу, UI-модалці, resend
- Гнучкі режими логування: ви можете самостійно керувати деталізацією журналу відправок залежно від обсягів вашої пошти:
- all (Повний аудит): система фіксує абсолютно всі події. Ідеально підходить для детального контролю та відстеження шляху кожного листа.
- errors_only (Оптимальний режим): у журнал записуються лише помилки доставки та проблемні листи (Failed та DLQ). Цей режим створено спеціально для великих магазинів із тисячами листів на день, щоб мінімізувати навантаження на сервер та не забивати базу даних зайвою інформацією.
-
1
-
Сейчас на странице 0 пользователей
- Нет пользователей, просматривающих эту страницу.