Рассылка новостей подписчикам одной или нескольких служб.

  1. При выборе службы Вам доступна рассылка новостей для всех её подписчиков:



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

  2. На экране отобразится довольно затейливая конструкция:


    Отправка сообщения подписчикам:

    Первые строчки письма могут (но не обязаны) содержать записи вида:

    Template===file.name.php===
    LetterSubj===Тема документа===
    Image0===image.gif===

    Всё, что выделено красным, трогать нельзя. Остальное- на здоровье:

    • file.name.php - файл в папке ./sender/data/letters/ выступающий HTML шаблоном этого документа.
    • Тема документа - это Subject данного конкретного письма.
    • image.gif - внедрённая в письмо графика. Файлы графического формата находятся в директории files.

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

    В теле писем (ниже первых строк) используйте специальные макросы:
    (макросы, помеченные слева красной точкой , можно использовать и в теме письма).

    • ---LetterSubj--- - тема письма, задаётся, как указано выше.
    • ---Image0--- - выводит приаттаченную графику <img src="---Image0---"> Задаётся, как указано выше.
    • ---UserName--- - подставляет имя адресата.
    • ---UserEmail--- - подставляет email юзера.
    • ---UserUnsubscribe--- - генерирует URL для отписки от рассылки.
    • ---DateSubscribe--- - выводит дату и время подписки на рассылку (время серверное).
    • ---DateSelf--- - выводит текущее время и дату в формате 28.04.2011 12:34:07
    • ---RuDate--- - выводит текущее время и дату в формате 28 апреля 2011
      ---RuDate-10--- - 18 апреля 2011 - смещение на 10 суток в прошлое
      ---RuDate10--- - 8 мая 2011 - перевод даты на +10 суток.
    • ---NumberOfLetters--- - указывает, сколько писем в данной рассылке.
    • ---ProjectID--- - отображает идентификатор службы.
    • ---ProjectName--- - выводит название службы.
    • ---ProjectURL--- - сотворяет URL главной страницы скрипта.
    • ---MyName--- - сообщает Ваше имя.
    • ---MyEmail--- - подставляет Ваш email.

    Письмо может быть создано в html или текстовой моде- рассылка выйдет в одной из этих версий.

    Пожалуйста, воспользуйтесь одной из форм.

    Текстовая мода. Шаблон: ./sender/data/letters/default/_dispatch.letter.txt.php

    HTML мода. Шаблон: ./sender/data/letters/default/_dispatch.letter.htm.php


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

    Вы можете провести рассылку в текстовой моде (первая форма), либо в HTML формате (вторая).

    Предполагается, что в этом месте Вы не принимаетесь мучительно создавать текст рассылки из головы, делая при этом кучу ошибок, нуждающихся в последующем исправлении. Потому что это не редактор, а форма отправки - код письма в выбранном формате у Вас должен быть уже готов. Вы вставляете код в нужное поле формы, и нажимаете под ним форму отправки "Далее..."

    Предупреждение:

      В момент отправки формы может возникнуть ситуация, когда вдруг ни с того ни с сего сервер генерирует 404 ошибку (страница не найдена), которая, в соответствии с политикой сервера, может переадресовывать браузер на страницу-заглушку браузера либо сайта (URL в адресной строке браузера при этом меняется).

      Причём те же самые действия на Денвере (или любом другом локальном сервере) вызовут штатное срабатывание скрипта. Что говорит о том, что в появлении 404 ошибки виноват не скрипт, а сервер.

      Это действительно так. И причина банальна.

      Хостеры очень любят бездумно навешивать на PHP разнообразные фильтры против MySQL инъекций, и применять их даже тогда, когда скрипт вообще не взаимодействует с технологиями на основе SQL баз данных. Причём саппорт хостера не особо понимает механизм работы фильтров, и не сможет объяснить, что именно в HTML шаблоне письма вызывает подобный казус. И даже может не знать, что ошибка 404 вызвана именно текстом шаблона письма, а будет упорно отправлять к разработчику, утверждая, что скрипт у него кривой, и шлёт форму не туда.

      Как показали исследования НИИ имени Великого Метода Тыка, на самом деле фильтры хостера могут реагировать на какой-нибудь безобидный фрагмент href='mailto: и тому подобные конструкции. Замена одинарной кавычки вокруг майлто на двойную, либо упразднение кавычек вообще, внезапно чудесным образом излечивает недуг.

      На Вашем хостере аналогичные фильтры могут срабатывать на иные фрагменты кода, что обусловлено применением саппортом хостера тех или иных сигнатур. Соответственно, выяснять отношения по поводу 404 или даже 500 ошибки, возникающей при отправке формы, надо с этим самым саппортом, но никоим образом не с автором скрипта. Автор тут ни при чём абсолютно и ни с какого бока.

      Если Вам (или саппорту хостера) кажется иначе, читайте всё это ещё раз до обретения просветления.

  3. Отправив форму, Вы уточняете параметры рассылки:


    Активация рассылки документа - контроль содержимого письма:


    Subject: Тема сообщения
    LetterSubj===Тема сообщения===
     
    ----------------------------------------------------------------------
    Новости проекта "---ProjectName---"  ---ProjectURL------ProjectID---
    ----------------------------------------------------------------------
     
       Получатель: ---UserName---
       email: ---UserEmail---
       Дата подписки: ---DateSubscribe---
     
     
     
       Уважаемый (ая) ---UserName---,
     
     
       Ваше сообщение в рамках рассылки.
       Пожалуйста, форматируйте (компонуйте) его.
       Это ТЕКСТОВЫЙ формат - как напишите, так и будет.
       Не забывайте, что почтовые клиенты переносят длинные строки, 
       нарушая исходное форматирование.
     
     
     
       С уважением,
     
       ---MyName---
       ---RuDate---
     
    ----------------------------------------------------------------------
    Отписаться от рассылки:
    ---UserUnsubscribe---

    Вы можете заказать получение этого письма на свой email с целью просмотра его в почтовом клиенте:

    Определитесь с датой выхода рассылки.

    Формат: День.Месяц.Год Час:Минута:Секунда
    Время серверное.
    Сейчас на сервере 28.04.2011 12:49:01

    Обратите внимание, что по умолчанию рассылка отложена на один час.
    Это чтобы она не ушла сразу же в эфир, и было время спохватиться, если что не так.

    Выбор групп адрасатов:

    Теперь решите, подписчики каких именно служб получат Вашу рассылку.
    Поставьте птички в чекбоксах нужных служб.

    dispatch Волшебство e-mail маркетинга
    woodpecker Почтовый Дятел Архив


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

    Время выхода рассылки по дефолту отодвигается на час. Для чего и почему, предельно ясно сказано.

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

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

  4. Если выбрана именно одна служба, и она серийная, то Вы можете уточнить статус получателей, отсортированных по числу писем, полученных в рамках этой службы.

    Смысл прост: не все получатели рассылки, особенно лишь недавно попавшие в подписной лист, смогут переварить Ваши новости, вполне понятные только опытным пользователям, уже усвоившим столько-то писем этой службы. А потому новичкам слать это не нужно и даже бесполезно.


    Рапорт о формировании задания на рассылку:

    Есть возможность сделать рассылку только подписчикам, получившим определённое число писем.

    Укажите категорию получателей рассылки через выпадающую форму:


    Для примера тут показано, что мы желаем оповестить о каких-то новостях только получателей трёх и более писем выбранной серийной службы.

  5. Если такие получатели сыскались, то по ту сторону клика последует рапорт:


    Рапорт о формировании задания на рассылку:

    • Создан список рассылки 1303973321.news.dispatch.db
    • Письмо сохранено как: 1303973321.sender.php
    • Получатели: подписчики службы dispatch
    • Всего получателей: 7
    • Задание на рассылку добавлено в очередь сендера.
    • Номинальное время выхода рассылки- 28.04.2011 в 13:49:01 по серверному времени.
    • Учтите, что все задания на рассылку встают в очередь, и время выхода может отличаеться от указанного.

    Проверка целостности данных:

    • Задание в базе сендера сформировано.
    • Шаблон письма рассылки найден на хосте.
    • Список рассылки действительно создан и существует.

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

  6. Кнопка перехода на морду админки тут тоже не просто так.
    Если установки кэширования позволят морде обновиться, там будет рапорт о проделанной работе:


    Обобщённые сведения о службах и рассылках от 28.04.11 12:23:36

    Рассылок в очереди: 1

    1. Задание создано: 28.04.2011 13:48:41 [ удалить это задание действие необратимо! ]
      Получателей всего: 7
      Разослано писем: 0 из 7

    Активных служб серийных рассылок: 1

    1. dispatch:
      0
      14
      7
      2
      0
      4
      1
      2
      5

    Активных служб новостийных рассылок: 1

    1. woodpecker:
      0
      14474
      14457
      17



    Именно с морды админки возможно удаление заданий новостийной рассылки, а также контроль её исполнения (будет видно, скольким подписчикам рассылка новостей уже отправлена).