Files
admin/.tasks/snolla-mailer-per-recipient-send.md

32 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[//]: # (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 форм с 23 админами** — их письма падают.
## Требования (код, 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 1723) → контрольный заказ с 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.