Помощь начинающим веб
разработчикам
  • статья
  • pantey

Останавливаем email рассылку модуля simplenews

25.02.2015

Всем вам прекрасно знаком модуль simplenews, который позволяет производить новостную рассылку по списку email адресов. Хотя, в некоторых случаях, работа модуля и вызывает некоторые трудности, но в целом он стабильно работает и справляется со своей задачей. Из всех его возможностей и большого количества настроек, на мой взгляд, разработчики не предусмотрели не мало важную возможность – как остановить рассылку. Бывают случаи, когда эта возможность просто необходима.

Итак, для того чтобы остановить рассылку – нам необходимо внести некоторые изменения в базу данных. Для удобства в работе с БД я буду использовать phpMyAdmin, у вас же может быть любой другой web-интерфейс или отдельное приложение.

Первое что я вам рекомендую сделать – это создать бекап вашей БД, думаю вы и без меня с этим справитесь.

Далее, находим таблицу в вашей БД под именем simplenews_newsletter или воспользуйтесь командой

  1. SELECT * FROM `simplenews_newsletter` LIMIT 0 , 50
Таблица simplenews_newsletter

Где, мы увидим следующие столбцы:

  • nid – id ноды рассылки
  • tid – id категории рассылки, он же id термина таксономии
  • status – статус рассылки
  • sent_subscriber_count – кол-во отправленных писем на данный момент времени

Здесь нужно подробнее остановиться на колонке status, по остальным колонкам думаю понятно.

Список возможных значений - status:
  • 0 – рассылка не отправлена
  • 1 – рассылка в процессе отправки
  • 2 – рассылка отправлена
  • 3 – статья не опубликована

Хочу заметить, что status со значением 3, дает возможность автоматической отправки рассылки, после публикации статьи (ноды).

Как вы поняли, сейчас нам необходимо изменить статус рассылки для необходимой ноды. В моем случае id ноды – 121042, я изменю статус на 0, ибо планирую в дальнейшем все же отправить рассылку, или воспользуйтесь командой:

  1. UPDATE `имя_вашей_БД`.`simplenews_newsletter` SET `status` = '0' WHERE `simplenews_newsletter`.`nid` =id_вашей_ноды;

А так же я вам рекомендую изменить значение на 0, и в колонке sent_subscriber_count, можно воспользоваться этой командой:

  1. UPDATE ` имя_вашей_БД `.`simplenews_newsletter` SET `sent_subscriber_count` = '0' WHERE `simplenews_newsletter`.`nid` = id_вашей_ноды;

После этого, если вы посмотрите на список ваших рассылок, в панели управления сайтом, по пути «Структура->Рассылки», то вы увидите, что для указанной ноды, в колонке «Отправлено» - будет запись «Еще не отправлено». Но мы не остановили еще рассылку, ибо по запуску Cron наша рассылка будет продолжать отправляться.

Для полной остановки рассылки нам необходимо очистить список email адресов для текущей рассылки. Для этого переходим в таблицу под именем simplenews_mail_spool или воспользуйтесь командой:

  1. SELECT * FROM `simplenews_mail_spool` LIMIT 0 , 50

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

  1. TRUNCATE `simplenews_mail_spool`

После чего наша рассылка не будет отправляться и после запуска Cron. С задачей справились.

Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Добавить комментарий

- Оповестить о новом комментарии.
- Все комментарии
- Только мои комментарии