Как я могу позволить пользователям получать электронную почту, когда я обновляю свой блог в Drupal 7?

11

У меня есть блог на английском и японском языках в Drupal 7. Я создал этот блог, используя собственный тип контента и представления, а не встроенный модуль блога.

У меня есть RSS-канал (сделано в представлениях) для каждого языка. Я хотел бы разрешить пользователям подписываться на получение всех обновлений на английском языке для типа контента "блог" или всех обновлений на японском языке для типа контента "блог". (Я предполагаю, что большинству пользователей нужен только один или другой язык. Если пользователь действительно хочет оба языка, я не против заставить их подписаться дважды).

Я рассмотрел использование Feedburner в каналах RSS, но модуль Feedburner не обновлялся для D7, и я бы не стал полагаться на внешний сервис. (Когда я попытался настроить Feedburner без модуля, он сказал, что моего RSS-канала не существует, хотя ссылка на службу поддержки позволила мне его проверить.)

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

Я уверен, что есть много способов сделать это, но есть так много модулей типа «mail helper», что я не знаю, с чего начать.

Подводя итог моим требованиям, я хочу:

  • Автоматически отправлять по электронной почте подписчикам при добавлении нового сообщения в блог на соответствующем языке.
  • Как аутентифицированные, так и анонимные пользователи должны иметь возможность подписки.
  • Подписки должны требовать подтверждения (законное требование).
  • Совместимость с модулем MIME Mail была бы хорошим бонусом.
Патрик Кенни
источник

Ответы:

1

Другой альтернативный вариант - использовать Google Feedburner для отправки электронного письма от вашего имени.

Смотрите документацию онлайн для получения дополнительной информации.

После того, как Google Feedburner «сжег» ваши каналы, вы можете получить код для встраивания формы регистрации, чтобы пользователи могли получать оповещения по электронной почте. Причина, по которой это так хорошо соответствует вашим потребностям, заключается в том, что все вращается вокруг наличия качественного источника RSS-канала, и Views способен на это. Единственный реальный вопрос - хотите ли вы иметь полный контент или тизер только в RSS (и, следовательно, по электронной почте).

Другое преимущество, которое он имеет по сравнению с вышеупомянутыми вариантами рассылки / триггера, заключается в том, что он отправляет только ежедневный дайджест, поэтому максимум 1 сообщение отправляется в день для каждого сожженного RSS-канала. Это предотвратит спам ваших постоянных подписчиков, когда у вас есть активные дни.

Возможности Google feedburner включают (прямо из вышеуказанной документации):

Управление подписками

  • Просмотр и сортировка списка
  • Активировать, деактивировать и удалять отдельные адреса электронной почты
  • Экспортируйте свой список в формате Excel или CSV
  • Получать необязательное письмо, когда люди отписываются

Коммуникационные предпочтения

  • Настройте строку темы и основной текст электронного письма, которое отправляется подписчикам после того, как они согласились получать ваш фид по электронной почте. Это может пригодиться, если вы хотите локализовать электронную почту.
  • ВАЖНОЕ ПРИМЕЧАНИЕ. Электронные письма имеют только текстовый характер, и для активации подписки необходимо включить исходную ссылку $ {Подтверждение ссылки} в электронное письмо с подтверждением.

Email-брендинг

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

Варианты доставки

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

Пример учебника о том, как это настроить, можно найти здесь .

WIIFM
источник
Спасибо за предложение Feedburner, но, как отмечалось в первоначальном вопросе, он отказался сжигать мои каналы, несмотря на то, что смог их проверить. Точная ошибка, которую он мне выдает: «Получен HTTP-код ошибки 400 при загрузке исходного канала»; однако, когда я нажимаю ссылку «Проверить этот фид» на странице ошибки, он говорит мне, что фид действителен. К сожалению, Feedburner также не имеет опций поддержки.
Патрик Кенни
У меня была та же ошибка, наша проблема заключалась в том, что Google Feedburner не поддерживает SSL. Простое решение - разрешить доступ HTTP к каналу.
2012 г.,
1
Если разрешить HTTP-доступ к каналам не представляется возможным, в недавнем проекте мы фактически проксировали RSS-канал через Google Reader, а затем в Google Feedburner (грязно, но это работает). Вот пример канала из этого процесса feeds.feedburner.com/TranspowerNewsFeed - так как весь сайт transpower.co.nz защищен протоколом HTTPS
wiifm
Награждение этим ответом щедрости, потому что оказалось, что мне было гораздо проще настроить его в Feedburner, даже с помощью перенаправления SSL через Google Reader, чем с помощью Simplenews.
Патрик Кенни
5

Это можно легко приобрести. Я могу дать вам несколько шагов для подражания.

На самом деле есть как минимум 2 способа добиться этого

А. Использование триггеров (основной модуль)

  1. Сначала активируйте основной модуль Триггеры. Это обеспечит вас основными триггерами (в вашем случае триггером UPDATE) и действиями, которые будут выполняться при выполнении условия.

  2. Выберите «Администрирование»> «Конфигурация»> «Действия», затем СОЗДАЙТЕ РАСШИРЕННОЕ ДЕЙСТВИЕ, затем выберите «Отправить по электронной почте». В поле получателя вам нужно выбрать правильный токен, предоставленный модулем simplenews, чтобы соответствовать всем зарегистрированным пользователям. (убедитесь, что у вас также установлен модуль Token)

  3. Перейдите в Admin> Структура> Триггеры, затем вкладка Узел. Выберите третий: TRIGGER: ПОСЛЕ СОХРАНЕНИЯ ОБНОВЛЕННОГО СОДЕРЖАНИЯ.

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

function YOURMODULE_trigger_info_alter (& $ triggers) {// Здесь dpm ($ triggers), чтобы увидеть, где находится ваш триггер обновления, и внести изменения. }?>

Б. Использование правил (модуль contrib) Basic тоже самое. Если вы застряли, выполните следующие действия по аналогичной проблеме в этом блоге: http://adellefrank.com/blog/how-to-email-notifications-comments-drupal7

drupal_stuff_alter
источник
1
«TRIGGER: ПОСЛЕ СОХРАНЕНИЯ НОВОГО КОНТЕНТА» отправит одно электронное письмо при создании сообщения, а «TRIGGER: ПОСЛЕ СОХРАНЕНИЯ ОБНОВЛЕННОГО КОНТЕНТА» отправит новое электронное письмо, если в сообщение будут внесены какие-либо изменения.
Citricguy
1
При использовании Правил, почему я должен использовать действие «Отправить электронную почту» вместо действия «Отправить электронную почту», предоставляемого модулем Simplenews?
Патрик Кенни
5

Модуль Simplenews делает все, что вам нужно. Можно настроить так, чтобы каждое ваше сообщение в блоге автоматически становилось новостной рассылкой и отправлялось подписчикам. Просто в конфигурации Simplenews выберите тип контента Блог, чтобы быть источником рассылки.

Чтобы сделать это:

  1. Откройте конфигурационную форму типа контента блога (/ admin / structure / types / manage / blog)
  2. На вкладке «Параметры публикации» установите флажок «Использовать как новостную рассылку Simplenews»
Евгений Фиделин
источник
Где в конфигурации Simplenews опция «Источник новостной рассылки»? Я думаю, что я прошел через все меню, и я не нашел ничего похожего на это ...
Патрик Кенни
Смотрите обновленный ответ выше.
Евгений Фиделин
1

Если вы хотите сделать это программно, посмотрите drupal_mail ($ module, $ key, $ to, $ language, $ params = array (), $ from = NULL, $ send = TRUE) ,

Когда узел обновляется, зацепка hook_node_update ($ node) будет запущена. Если вы хотите создать собственный формат составленной почты, используйте hook_mail ($ key, & $ message, $ params) . Таким образом, вы должны написать 2 хука сначала hook_node_update и hook_mail. Внутри hook_node_update вы должны написать функцию drupal_mail, которая будет вызывать вашу hook_mail.

werqious
источник
0

Вы можете использовать мой модуль песочницы Total Subscription

Этот модуль находится в очереди проекта drupal. Вот ссылка для этого: - ССЫЛКА

Я думаю, что это даст функциональность, которая вам требуется.

Дипак Кумар
источник
1
Не могли бы вы немного рассказать о том, как этот модуль решит проблему пользователя?
mpdonadio