web-dev-qa-db-ja.com

Drupal 7でブログを更新するたびに、ユーザーが電子メールを受信できるようにするにはどうすればよいですか?

Drupal 7.に英語と日本語のブログがあります。7.このブログは、組み込みのブログモジュールではなく、カスタムコンテンツタイプとビューを使用して作成しました。

言語ごとにRSSフィード(ビューで作成)があります。ユーザーがサブスクライブして、コンテンツタイプ「ブログ」に対するすべての英語の更新またはコンテンツタイプ「ブログ」に対するすべての日本語の更新を受け取ることを許可します。 (私はほとんどのユーザーがどちらか一方の言語だけを望んでいると思います。ユーザーが本当に両方の言語を望んでいるなら、私はそれらに2回サブスクライブさせてもかまいません。)

RSSフィードでFeedburnerを使用することを検討しましたが、FeedburnerモジュールはD7用に更新されておらず、外部サービスに依存したくありません。 (モジュールなしでFeedburnerをセットアップしようとすると、サポートリンクで検証できるにもかかわらず、RSSフィードが存在しないことがわかりました。)

Simplenews モジュールも確認しましたが、そのモジュールでは各ニュースレターの投稿を個別に作成する必要があるようです。ブログに更新を投稿したときに、購読しているユーザーに自動的に電子メールを送信したいのです。

これを行う方法はたくさんあると思いますが、「メールヘルパー」タイプのモジュールが多すぎるため、どこから始めればよいか途方に暮れています。

私の要件を要約するには、次のことを行います。

  • 適切な言語の新しいブログ投稿が追加されたときに、購読者に自動的に電子メールを送信します。
  • 認証されたユーザーと匿名ユーザーの両方がサブスクライブできる必要があります。
  • サブスクリプションには確認が必要です(法的要件)。
  • MIME Mail モジュールとの互換性は素晴らしいボーナスです。
11
Patrick Kenny

別の代替オプションは、Google Feedburnerを使用してユーザーに代わってメールを送信することです。

詳細は オンラインのドキュメント を参照してください。

Googleフィードバーナーがフィードを「焼き付け」たら、サインアップフォームの埋め込みコードを取得して、ユーザーがメールアラートを受信できるようにします。これがあなたのニーズに非常によく合う理由は、すべてが高品質のRSSフィードソースを使用することに関係しており、Viewsがこれを生成できるからです。唯一の真の問題は、RSS(したがって電子メール)のみでコンテンツ全体を表示するか、ティーザーを表示するかです。

これが上記のニュースレター/トリガーオプションよりも優れているもう1つの利点は、毎日のダイジェストのみを送信するため、書き込みが行われたRSSフィードごとに1日あたり最大1つの電子メールが送信されることです。これにより、アクティブな日があるときに忠実なサブスクライバーにスパムを送信するのを防ぐことができます。

Googleフィードバーナーの機能は次のとおりです(上記のドキュメントから直接):

サブスクリプション管理

  • リストを表示して並べ替える
  • 個別の電子メールアドレスをアクティブ化、非アクティブ化、および削除する
  • リストをExcelまたはCSV形式でエクスポートする
  • 退会時にオプションのメールを受け取る

通信設定

  • 購読者がメールでフィードを受信することを選択した後に購読者に送信されるメールの件名と本文をカスタマイズします。これは、メールをローカライズする場合に便利です。
  • 重要な注意:メールはテキストのみであり、サブスクリプションをアクティブ化するには、元の$ {confirmlink}参照を確認メールに含める必要があります。

メールブランディング

  • サブスクライバーに送信される電子メールの件名とタイトルをカスタマイズする
  • HTMLメールメッセージの上部に表示されるカスタムロゴを追加する
  • 本文と見出しのテキストのフォント、サイズ、色、およびリンクの色を変更する

配送オプション

  • タイムゾーンを選択してください
  • 毎日のダイジェストが送信される2時間の配信ウィンドウを選択します

これを設定する方法のサンプルチュートリアル ここにあります

1
wiifm

これは簡単に入手できます。いくつかの手順を説明します。

それを達成するには、実際には少なくとも2つの方法があります。

A.トリガーの使用(コアモジュール)

  1. まず、コアモジュールのトリガーをアクティブにします。これにより、基本的なトリガー(この場合はUPDATEトリガー)と、条件が満たされたときに実行するアクションが提供されます。

  2. [管理]> [構成]> [アクション]に移動し、[高度なアクションを作成]を選択して、[電子メールを送信]を選択します。受信者フィールドでは、登録済みのすべてのユーザーと一致するように、simplenewsモジュールによって提供される適切なトークンを選択する必要があります。 (トークンモジュールもインストールされていることを確認してください)

  3. [管理]> [構造]> [トリガー]に移動し、[Node]タブをクリックします。3番目を選択します:トリガー:更新されたコンテンツの保存後。

さらに制御が必要な場合は、フックを実装します

function YOURMODULE_trigger_info_alter(&$ triggers){//ここでdpm($ triggers)を使用して、更新トリガーの場所を確認し、変更を行います。 }?>

B.ルールの使用(contribモジュール)基本的に同じこと。行き詰まった場合は、このブログの同様の問題で次の手順に従ってください。 http://adellefrank.com/blog/how-to-email-notifications-comments-drupal7

5

Simplenews モジュールは必要なことすべてを行います。各ブログ投稿が自動的にニュースレターになり、購読者に送信されるように設定できます。 Simplenews設定で、コンテンツタイプBlogをニュースレターソースとして選択します。

これを行うには:

  1. ブログコンテンツタイプの構成フォームを開く(/ admin/structure/types/manage/blog)
  2. 「公開オプション」タブで「simplenewsニュースレターとして使用」にチェックを入れます
5
Eugene Fidelin

プログラムで行う場合は、 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内で、hook_mailを呼び出すdrupal_mail関数を記述する必要があります。

1
werqious

サンドボックスモジュールを使用できます Total Subscription

このモジュールはdrupalプロジェクトキューにあります。リンクは次のとおりです:- [〜#〜] link [〜#〜]

私はそれがあなたが必要とする機能を与えると思います。

0
Deepak Kumar