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

30 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 after SMTP incident follow-up: cold mailbox e-16513832@yandex.ru → Yandex 554 SPAM on multi-recipient mails; single-recipient OK)
# 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 получателем — проходит (проверено изоляционными тестами через msmtp: 1 получатель → 250, 2 получателя → 554 стабильно). Старый ящик `noreply@snolla.com` был прогрет, поэтому мульти-получатели раньше проходили.
В БД **11 форм с 23 админами** в FormRecipients (vitya.kuznetsov@gmail.com почти везде) — их письма сейчас падают.
## Требуется (код, victor/snolla)
1. В mailer: вместо одного `sendMail({to: [a@x, b@y]})` — цикл по получателям, по одному письму на каждого (тот же шаблон/контент). Учесть: не дублировать одного и того же адресата; опционально Cc/Bcc оставить как есть.
2. Тесты: форма с 2 админами → 2 письма, оба уходят (каждое 1 получатель).
## После деплоя (admin, координация)
- Вернуть vitya.kuznetsov@gmail.com в FormRecipients пилорама-checkout (удалён аварийно 2026-08-14, заказная форма 629B7586-14D2-442C-8CE9-8CE118F29A23, admin E4CC416B-5D13-4757-8EFE-03CBEA15B18C) и решить по остальным multi-admin формам тиража.
- Деплой по тиражу: 8 стеков (pilonuxt 16 + env 1723) — образы пересобрать/перекатить.
## Acceptance
- [ ] Форма с 2+ админами → по одному письму на каждого, все уходят (без 554).
- [ ] После деплоя vitya снова получает дубль заказов/контактов.
- [ ] Проверено контрольным заказом на pilorama98.