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

31 lines
2.7 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**: ТЗ отправлено в victor/snolla inbox (согласовано vitya). snolla занят задачами vitya — **делать в его очередь, не срочно**. Пинг после релиза → деплой наш.
- После релиза (admin): деплой тиража (pilonuxt 16 + env 1723) → контрольный заказ с 2 админами → 2 письма в ящиках (vitya + info@pilorama98.ru). FormRecipients НЕ трогаем.
- До фикса: письма админам по формам с 2+ получателями могут падать (554) — известное состояние, vitya в курсе.
## Acceptance
- [ ] Форма с 2+ админами → по одному письму на каждого, все уходят (без 554).
- [ ] После деплоя контрольный заказ: vitya + менеджер оба получили письмо.