32 lines
3.4 KiB
Markdown
32 lines
3.4 KiB
Markdown
[//]: # (created 2026-08-14, TZ согласовано vitya; snolla занят задачами vitya — делать в его очередь)
|
||
|
||
# snolla-mailer-per-recipient-send
|
||
|
||
## Goal
|
||
|
||
Mailer (@snollajs/mailer / forms-api, `emailSender.js`): отправлять письмо формы **отдельным письмом на каждого получателя** (loop по FormRecipients), а не одним письмом с несколькими адресами в To.
|
||
|
||
## Почему
|
||
|
||
2026-08-14: после переезда почты форм на холодный ящик `e-16513832@yandex.ru` (app-password) Яндекс режектит **554 5.7.1 SPAM** ЛЮБОЕ письмо с **2+ получателями**; с 1 получателем — проходит (изоляционные тесты: 1→250, 2→554 стабильно; боевой заказ #2497 с 1 получателем — 0 ошибок). Старый ящик `noreply@snolla.com` был прогрет → мульти-получатели раньше проходили. В БД **11 форм с 2–3 админами** — их письма падают.
|
||
|
||
## Требования (код, victor/snolla)
|
||
|
||
1. Цикл по получателям, по одному письму на каждого (тот же шаблон/контент).
|
||
2. Dedupe одинаковых адресов.
|
||
3. Ошибка одного получателя не роняет остальные (per-recipient try/catch + лог).
|
||
4. Cc/Bcc/Reply-To сохранить.
|
||
5. Тест: форма с 2+ админами → по одному письму на каждого, все уходят (без 554).
|
||
|
||
## Координация
|
||
|
||
- **2026-08-14**: snolla опубликовал `@snolla/mailer@0.9.0` (bb8599d) + бампы `forms-api@0.2.0` (^0.9.0) + `web@0.44.0` (^0.9.0). **Деплой ВЫПОЛНЕН**: pilonuxt `8b7e8c4` (forms-api 0.2.0), env-сайты web@0.44.0 (`83513ef/0cd20fc/698d5f5/3f6f0c4/ccd620c/a649bcf/4aaa175`); data дедюпнут до единого 0.15.1. **Попутный фикс**: у env-сайтов в `production.json` был запечён `mailSettings.from=noreply@snolla.com` → 550 not-owned (kupimknigi подтвердил) → from заменён на e-16513832@yandex.ru во всех 7 + пересборка. **Приёмка**: pilorama98 #2498 — 3 письма (2 админа + клиент), 0 ошибок; kupimknigi #516 — 2 отдельных письма (bookvam + vitya), 0 ошибок. mailer 0.9.0 подтверждён во всех 8 контейнерах. DONE.
|
||
- После релиза (admin): деплой тиража (pilonuxt 16 + env 17–23) → контрольный заказ с 2 админами → 2 письма в ящиках (vitya + info@pilorama98.ru). FormRecipients НЕ трогаем. — выполнено 2026-08-14.
|
||
- До фикса: письма админам по формам с 2+ получателями могут падать (554) — известное состояние, vitya в курсе.
|
||
|
||
## Acceptance
|
||
|
||
- [x] Форма с 2+ админами → по одному письму на каждого, все уходят (без 554/550) — pilorama98 #2498 + kupimknigi #516 подтверждены.
|
||
- [x] После деплоя контрольный заказ: vitya + менеджер оба получили письмо (messageId в логах).
|
||
- [x] 2026-08-14: DONE.
|