30日間ログインしていないユーザーにメールを送信するにはどうすればよいですか?


7

私はDrupal 7を使用していますが、30日間サイトにログインしていない登録ユーザーにメールを送信したいと思います。たとえば、次のようなメールです。

こんにちはユーザー、あなたは30日以来ログインしていません。

何か方法はありますか?

回答:


8

これを行うには、Rulesモジュールを使用できます。

ユーザーがログインするときにトリガーされるという規則を作成します。このルール作りスケジュールは 30日で、この電子メールを送信します。タスク識別子をのようにし30-days reminder for [account:uid]ます。これにより、ユーザーが30日以内にログインすると、スケジュールされたタスクが上書きされ、30日分の電子メールがプッシュされます。

ルールスケジューラモジュールを必ずアクティブ化してください。


2
ルールスケジューラに関する一連のビデオスクリーンキャストでは、これについて詳しく説明しています。nodeone.se
Patrick Kenny

@PatrickKenny:注意してください、このリンクは壊れています。それの交換を考えることができますか?
Pierre.Vriens 2017


1

User Statsモジュールを見てください。それはあなたのために働くことができるものかもしれません。モジュールのプロジェクトページから:

themers、IPアドレスの追跡、およびビューの統合に関して一般的に要求されるユーザー統計を提供します。統計は次のとおりです。

  • 登録日
  • 参加日前回のログインからの日数
  • 最後の投稿からの日数

など、cronjobを使用してメールを送信できます。


0

別の方法は、hook_cronを実装することです。このような:

function yourmodulename_cron() {
  $users = database query to get users that have not logged on in the last 30 days
  $queue = DrupalQueue::get('send_maillast30days');
  foreach ($users as $user) {
    $queue->createItem($user);
  }
}

また、次に示すように、hook_cron_queue_infoを使用してキューを実装する必要があります。

function yourmodulename_cron_queue_info() {
  $queues['send_maillast30days'] = array(
    'worker callback' => 'yourmodulename_send_email30days',
    'time' => 60,
  );
  return $queues;
}

「yourmodulename_send_email30days」関数も実装する必要があります:すなわち

function yourmodulename_send_email30days($user) {
  //use drupal_mail function to send the mail (see http://api.drupal.org/api/drupal/includes%21mail.inc/function/drupal_mail/7)
}

0

非アクティブなユーザーモジュールを試すことができます。

非アクティブなユーザー
http://drupal.org/project/inactive_user

inactive_userモジュールは、Drupal管理者に非アクティブなユーザーアカウントを自動的に管理する方法を提供します。このモジュールには2つの目標があります。設定可能な期間ユーザーがいなくなったときにユーザーに通知することにより、ユーザーがサイトに再びアクセスできるようにすることと、未使用のアカウントをクリーンアップすることです。


Inactive_userには0のドキュメントがあり、何もしません。
sea26.2 2013

inactive_userは
メンテナンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.