Прямой ответ
Отказ от рассылки — механизм, позволяющий получателю прекратить получение маркетинговых сообщений без обращения в поддержку. Три элемента определяют корректную реализацию: заметная ссылка в письме, отписка в один шаг и фактическое прекращение отправки.
Заголовок однокнопочной отписки:
List-Unsubscribe: ,
<mailto:unsub@noutmarket.example?subject=unsubscribe>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Заголовок позволяет почтовому клиенту показать кнопку отписки, а параметр List-Unsubscribe-Post указывает на однокнопочный метод.
Токен в ссылке уникален и не требует входа:
@app.post("/unsub/<token>")
async def unsubscribe(token: str):
record = await lookup_token(token)
await db.execute("""
INSERT INTO unsubscribes (user_id, scope, created_at)
VALUES ($1, 'marketing', now())
ON CONFLICT (user_id, scope) DO NOTHING
""", record["user_id"])
return {"status": "unsubscribed"}
| Требование | Нарушение | Последствие |
|---|---|---|
| Заметная ссылка в письме | Скрыта мелким шрифтом | Жалобы вместо отписки |
| Отписка в один шаг | Требуется вход в учётную запись | Отказ от процедуры, жалоба |
| Прекращение отправки | Отправка продолжается | Жалобы, снижение репутации |
| Учёт отписки при отправке | Проверка отсутствует | Повторная отправка после отписки |
Транзакционные сообщения не относятся к рассылке, поэтому отписка их не прекращает. О разделении типов сообщений — в статье про предпочтения уведомлений.
Согласие, отписка и их учёт при отправке
Отписка и согласие — две стороны одного механизма. Отправка маркетингового сообщения требует наличия согласия и отсутствия отписки, поэтому проверка выполняется по обоим условиям.
SELECT EXISTS (
SELECT 1 FROM consents c
WHERE c.user_id = $1 AND c.scope = 'marketing' AND c.revoked_at IS NULL
) AND NOT EXISTS (
SELECT 1 FROM unsubscribes u
WHERE u.user_id = $1 AND u.scope = 'marketing'
) AS allowed;
Отсутствие записи о согласии трактуется как отсутствие разрешения, а не как разрешение по умолчанию. Обратное поведение приводит к отправке без основания.
Три практических следствия.
Отписка отменяет ранее данное согласие. Пользователь, отписавшийся по ссылке, прекращает получение рассылки независимо от того, давал ли согласие ранее.
Повторное согласие требует явного действия. Возобновление рассылки после отписки выполняется явным подтверждением, а не отсутствием отписки.
Срок прекращения отправки ограничен. Отправка прекращается в короткий срок после отписки, поскольку письма, поставленные в очередь до отписки, не должны уходить после неё.
Практическое следствие: проверка выполняется в момент отправки, а не только в момент формирования списка рассылки. Список, сформированный до отписки, содержит адрес, по которому отправка уже недопустима.
Отдельный аспект — жалобы. Пользователь, не нашедший способ отписки, помечает письмо как спам. Доля жалоб влияет на репутацию домена и доставляемость всех писем; о настройке аутентификации — в статье про SPF, DKIM и DMARC.
Изменения согласия и отписки фиксируются в журнале; о журналировании — в статье про журнал действий пользователя.
Практика: реализация отказа от рассылки
1. Размещайте ссылку отписки в каждом маркетинговом письме. Отсутствие ссылки приводит к жалобам вместо отписки.
2. Добавьте заголовок однокнопочной отписки. Почтовый клиент показывает кнопку, поэтому отписка выполняется без перехода на сайт.
3. Не требуйте входа для отписки. Токен в ссылке идентифицирует получателя, поэтому авторизация избыточна.
4. Проверяйте отписку в момент отправки. Список рассылки формируется заранее, а отписка могла произойти позже.
5. Прекращайте отправку в короткий срок. Письма в очереди не отправляются после получения отписки.
6. Не отправляйте подтверждение отписки письмом. Подтверждение воспринимается как продолжение рассылки.
7. Фиксируйте дату и способ отписки. Разбор обращения требует подтверждения факта и времени отписки.
Рекомендации:
- Различайте отписку от рассылки и отключение канала. Отписка прекращает маркетинговые сообщения, но не отменяет транзакционные.
- Предоставляйте выбор вместо полной отписки. Возможность отписаться от части тем снижает число полных отписок.
- Не скрывайте отписку за многошаговой процедурой. Каждый дополнительный шаг увеличивает вероятность жалобы.
- Учитывайте долю жалоб как метрику. Рост доли указывает на проблему с содержанием рассылки либо с доступностью отписки.
- Документируйте области отписки. Перечень тем рассылки и соответствующие области отписки фиксируются, поскольку отписка от одной темы не отменяет другие.
Практический сценарий: рассылка продолжалась после отписки
Контекст: пользователь отписался по ссылке в письме, но получил следующую рассылку через неделю.
- Диагностика. Запись об отписке присутствовала в таблице, а список рассылки формировался запросом по таблице согласий без проверки отписок. Оба условия хранились раздельно, и запрос учитывал только одно.
- Причина. Проверка при отправке отсутствовала, а формирование списка выполнялось по наличию согласия. Отписка не отзывала согласие, поэтому адрес оставался в списке.
- Действия. (а) Добавили проверку обоих условий при отправке, а не только при формировании списка; (б) включили проверку непосредственно перед передачей письма провайдеру, чтобы отписка, полученная после формирования списка, учитывалась; (в) добавили метрику числа отправленных писем по адресам с активной отпиской как индикатор ошибки; (г) добавили тест, проверяющий отсутствие отправки после отписки; (д) зафиксировали дату и способ отписки в журнале для разбора обращений.
- Результат. Отписка прекращает отправку независимо от момента формирования списка, а расхождение выявляется метрикой.
Вывод: отписка проверяется в момент отправки, а не только при формировании списка рассылки, поскольку отписка может произойти позже формирования. Наличие согласия и отсутствие отписки — два независимых условия, и проверка по одному из них приводит к продолжению рассылки.
FAQ
Обязательна ли ссылка отписки в письме? Да для маркетинговых сообщений. Отсутствие ссылки приводит к жалобам, которые снижают репутацию домена.
Прекращает ли отписка транзакционные письма? Нет. Сообщения о заказе, платеже и безопасности не относятся к рассылке и продолжают отправляться.
Нужно ли требовать вход для отписки? Нет. Токен в ссылке идентифицирует получателя, а требование входа приводит к отказу от процедуры и жалобе.
Можно ли возобновить рассылку после отписки? Только по явному подтверждению пользователя. Отсутствие отписки не означает согласие.
Источники: RFC 8058 (List-Unsubscribe One-Click), GDPR, FTC CAN-SPAM Rule — ссылки в шапке.