Отправляет email-рассылки с помощью сервиса Sendsay

Часто задаваемые вопросы (FAQ-A)

Разметка страниц для команд http:// и ftp://


Версия 1.11 от 12.11.2010

Содержимое полученное с помощью команд http://, ftp:// подвершается фильтрации для того, чтобы в рассылку попал только тот текст, который Вы хотите в ней видеть.

Из страницы берутся только те части, которые попадают между маркерами и содержимое которых изменилось.

Сначала опишем как работают маркеры, а затем - как определяется что содержимое изменилось

Как работают маркеры

Фильтрация страницы по специальным маркерам позволяет не готовить каждый новый выпуск делать в двух варианта - для веба и для рассылки. Вы можете указать части которые: должны быть на сайте, но не попасть в рассылку (банеры например - всё равно в почте не работаю), должны быть в рассылке но не быть видны на сайте (например приветствие подписчикам) или должны быть и на сайте и в рассылке.

При использовании http:// и ftp:// в тексте выпуска маркеры это:

  • маркер начала текста - строка, начинающаяся с <!--subscribeBegin
  • и маркер конца текста - строка, заканчивающаяся на subscribeEnd-->

При использовании http:// и ftp:// в меню выпуска маркеры это:

  • маркер начала меню - строка, начинающаяся с <!--subscribeBeginMenu
  • и маркер конца меню - строка, заканчивающаяя на subscribeEndMenu-->

При использовании http:// и ftp:// в дайджесте выпуска маркеры это:

  • маркер начала дайджеста - строка, начинающаяся с <!--subscribeBeginDigest
  • и маркер конца дайджеста - строка, заканчивающаяся на subscribeEndDigest-->

Сами строки, содержащие маркеры, в рассылку не попадают. Это значит, что их следует писать на отдельных строках HTML-страницы.

Если текст не содержит ни одного маркера начала блока, то он попадает в рассылку целиком - это позволяет Вам ничего не менять при вводе рассылки, если Вам не интересна фильтрация.

Важная особенность команд http:// и ftp:// состоит в том, что если встретились в шаблоне тексте выпуска (а не меню или дайджеста), то кроме обычного результата делается попытка дополнительно найти на скаченой странице блоки для меню и дайджеста.

Если такие блоки будут найдены, то они заменят собой соответственно меню или дайджест письма.

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

А вы заметили, что маркер начала не обязан заканчиваться --> , а маркер конца - начинаться с <!--? Упущение? Нет - это специальная возможность очень гибко формировать страницу. Вот пример текста страницы, которая должна быть на вебе в одном виде, а в рассылке - в другом. Надеемся, он всё объяснит. Так же в коде страницы задан дайджест выпуска.

Код страницы На вебе В рассылке Дайджест выпуска

<!--subscribeBeginDigest
"Мяу-Ньюс" выпуск [SUBSCRIBE issue_number]
Про мышей, молоко и концерт.
А ещё про встречу подписчиков.
subscribeEndDigest-->

Свежий выпуск <I>"Мяу-Ньюс"</I>
<BR>сегодня в выпуске:
<OL>
<!--subscribeBegin-->
<LI> Снижены цены на мышей
<LI> Цены на молоко не менялись
<LI> Концерт на крыше магазина
<!--subscribeEnd-->

<!--subscribeBegin
<LI> Встреча котов-подписчиков
subscribeEnd-->

<LI> Для посетителей нашего сайта
<LI> Турне по подвалам Ленинграда

<!--subscribeBegin
</OL>

До новых встреч.

Свежий выпуск "Мяу-Ньюс"
сегодня в выпуске:
  1. Снижены цены на мышей
  2. Цены на молоко не менялись
  3. Концерт на крыше магазина
  4. Для посетителей нашего сайта
  5. Турне по подвалам Ленинграда
До новых встреч.
Свежий выпуск "Мяу-Ньюс"
сегодня в выпуске:
  1. Снижены цены на мышей
  2. Цены на молоко не менялись
  3. Концерт на крыше магазина
  4. Встреча котов-подписчиков
До новых встреч.
"Мяу-Ньюс" выпуск 777

Про мышей, молоко и концерт.
А ещё про встречу подписчиков.

Отфильтрованный по описаным тут правилам текст пропускается ещё раз через интерпретатор языка SubScript.

Именно это позволило в дайджесте указать каманду [SUBSCRIBE issue_number] для подстановки номера выпуска, что дало в примере номер 777.

Как определяется что страница изменилась

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

Для того что бы избежать выхода дублей достаточно снабдить маркер начала текста выпуска параметром uuid для определения версии содержимого (любая строка - время, дата, внутренний номер новости у вас - что вам удобнее).

Для каждой страницы забираемой командами http:// или ftp:// запоминается на будущее только одна - последняя - использовавшаяся там версия.

Если у свежезабраной страницы версия совпала с хранимой, то считается что ничего не изменилось и такая команда http:// (ftp://) вернёт пустое значение. А, если, при выпуске по рассписанию все команды http:// (ftp://) и lenta вернули пусто, то такой выпуск и не выёдет. Что и требовалось.

[НОВОЕ] Специальное значение версии-=-SKIP-=- обозначает что блок надо пропустить. Хранимая версия от этого не изменяется.

Вот пример блока с параметром версии:

<!--subscribeBegin uuid="20080910.abc"
содержимое
subscribeEnd-->

При наличии на странице одного или нескольких блоков ни один из которых не содержит номера версии они все попадут в выпуск вне зависимости ни от чего, а хранимый номер версии изменён не будет.

При наличии на странице только одного блока и при наличии у этого блока параметра версии произойдет фильтрация как описано выше. Хранимый номер версии изменится на номер версии этого блока.

Если на странице будет несколько блоков и у одного (или нескольких) будет номер версии, то блоки с такой страницы попадут в выпуск только если ни одна встреченная на странице версия не совпала с хранимой, а хранимая версия будет заменена на последнюю встреченную при разборе страницы.

Если же у какого-то из этих нескольких блоков версия совпадёт с хранимой, то все блоки этой страницы будут прогнорированы (даже с другой версией, даже без версии вообще) - если вы в состоянии давать всем своим новостям уникальные номера, то вам прямая дорога сделать из них RSS и автоматизировать выпуск на основе него.

Наверх