Перейти к содержанию

Письма о новых уроках

Приветственная серия занимает согласованные слоты R001. Теперь редакция подготовила новый материал и хочет сообщить о нём. Письмо о новом уроке должно показать место главы, результат и условия чтения, но не обходить предпочтения ради новизны. В этом уроке составим NEWS-01 и решение о его отложенном включении.

Материал N01 существует как карточка учебной модели: тема web, результат «различить источник адреса и состояние страницы», публичное назначение вымышленное. Папка lesson-07 архива содержит полный текст и карту отбора. Никакой выпуск ProfessorWeb не отправлялся, даты и контакты синтетические.

Контекст главы

В начале письма объясним, что нового умеет сделать читатель. Формулировка «вышел очередной урок» сообщает только событие. Лучше: «В новой главе разбираем, почему запись пути и адрес готовой страницы могут расходиться». Затем назовём предпосылку: понимание различия исходника и публичного URL. Это помогает решить, читать сейчас или сначала вернуться к основе.

Письмо содержит две ссылки по функциям: основной урок и оглавление серии. Для новичка оглавление даёт точку входа, для продолжающего — статья является новым шагом. Не добавляем десять других курсов в середину объяснения. Подборка может иметь несколько материалов, но в NEWS-01 выбран один результат. Такой объём соответствует заданию, а не произвольному ограничению числа ссылок.

Элемент Содержание модели Действие
Тема письма Откуда берётся итоговый адрес Понять предмет
Вступление Запись пути и готовая страница различаются Узнать задачу
Предпосылка Адрес отделён от исходника Выбрать подготовку
Основная ссылка N01 на вымышленном домене Читать разбор
Оглавление Серия web Найти начало

В тексте не утверждаем, что новый урок уже проверен на всех средах. Учебный материал описывает ожидаемые состояния. Если конкретный технический пример не исполнялся, ограничение переносится и в аннотацию. Письмо не должно превращать осторожное объяснение статьи в обещание универсального исправления любой ошибки маршрута.

Подходящий контакт и слот

По теме N01 подходит R001, но его приветственная серия уже использует недельную ёмкость. R002 выбрал seo и monthly, поэтому не становится кандидатом web-письма. R003 expired, R004 unsubscribed. Ожидаемый результат текущего отбора — ни одной допустимой немедленной отправки. Это важный вывод: готовый материал и подходящая тема ещё не отменяют других условий.

Для R001 выберем deferred: включить анонс после приветственных слотов либо объединить с подходящим будущим письмом, сохранив общий лимит. Решение относится к содержанию и частоте. Мы не создаём дополнительный «срочный» тип сообщения только для обхода обещания. Если редакции действительно нужен другой режим, его следует согласовать отдельно, а не менять смысл текущей подписки молча.

В модели N01 имеет available_in_model: true, потому что письмо показывает сценарий будущего выпуска. Это не перевод Markdown в draft: false и не утверждение о настоящей публичной странице. Реальные ссылки нужно сопоставить после отдельного решения о публикации. Домен .example в приложении помогает удержать эту границу и не отправляет читателя на локальный черновик.

Актуальность материала проверяется при подготовке будущего слота. Если за время ожидания статья существенно изменилась, текст письма нужно пересмотреть. Старый анонс не должен описывать другой результат. Если материал снят с выпуска, отложенное сообщение отменяется. Очередь хранит зависимость от статьи, а не просто строку текста, которая отправится независимо от её состояния.

Обновление и повтор

Материал может появиться в нескольких подборках для разных предпочтений. Это не означает повтор одного письма одному человеку. У редакционного события есть ID NEWS-01, у сообщения для контакта — отдельный ключ. Для R001 тот же анонс нельзя включать в каждый недельный выпуск без причины. Повторное представление полезно только при отдельной задаче, например существенном обновлении, которое объяснено честно.

Не объявляйте исправление опечатки «новым уроком», если содержание прежнее. Если обновлён технический механизм, можно подготовить сообщение об изменении с указанием, что именно пересмотрено. Тема письма и аннотация должны сохранять происхождение события. Это позволяет читателю отличать новый шаг серии от повторной упаковки уже прочитанного текста.

Письмо также показывает путь для тех, кто не хочет эту тему. В конце есть настройки и остановка подборки. Эти демонстрационные маршруты ещё не работают, что обозначено в приложении. Ссылка на предпочтения не заменяет актуальную проверку перед отправкой: если человек уже изменил тему, письмо исключается, даже когда в тексте написано, как отказаться дальше.

Для темы используем точное название действия. Не добавляем «Re:», если письмо не является ответом, и не изображаем личную переписку с читателем. В нашей модели это редакционная подборка, а не сообщение знакомого человека. Даже без обсуждения требований конкретного провайдера такой выбор помогает сохранить честное назначение и понятный предмет сообщения.

Ожидаемое решение

В artifact.md находится полный текст NEWS-01, а after.json хранит кандидата R001, причину отложения и исключения остальных. Поле sent ложное. Никакой SMTP-сеанс, вызов API или планировщик не запускались. Отложенное состояние является редакционным решением, а не доказательством работы автоматической очереди.

Отложенное письмо может потерять смысл раньше допустимого слота. Поэтому у NEWS-01 есть редакционная дата пересмотра, но не автоматическая дата отправки. Если материал связан с кратким событием, через две недели лучше отменить устаревший анонс или подготовить другой полезный разбор. Для нашей темы источник адреса остаётся актуальной учебной задачей, поэтому достаточно повторно сверить содержание и назначение. Решение «отправить когда освободится место» без такого просмотра опасно не только по частоте: текст может ссылаться на прежнюю версию или обещать уже изменённый результат. В модели зависимость от N01 сохраняется явно. Новая версия статьи требует просмотра письма, а снятие материала отменяет отложенную карточку.

Измените сценарий: приветственная серия завершена, прошло больше семи дней, тема web и подтверждение актуальны. R001 становится допустимым кандидатом при доступном назначении. Если он отписался час назад, результат снова будет исключением. Такой вариант показывает, почему последнее состояние важнее старого списка сегмента. Следующая глава оформит подготовленный текст в HTML, сохранив смысл и ограничения.