回答:
これを行うには、Rulesモジュールを使用できます。
ユーザーがログインするときにトリガーされるという規則を作成します。このルール作りスケジュールは 30日で、この電子メールを送信します。タスクの識別子をのようにし30-days reminder for [account:uid]
ます。これにより、ユーザーが30日以内にログインすると、スケジュールされたタスクが上書きされ、30日分の電子メールがプッシュされます。
ルールスケジューラモジュールを必ずアクティブ化してください。
User Statsモジュールを見てください。それはあなたのために働くことができるものかもしれません。モジュールのプロジェクトページから:
themers、IPアドレスの追跡、およびビューの統合に関して一般的に要求されるユーザー統計を提供します。統計は次のとおりです。
- 登録日
- 参加日前回のログインからの日数
- 最後の投稿からの日数
など、cronjobを使用してメールを送信できます。
別の方法は、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)
}
非アクティブなユーザーモジュールを試すことができます。
非アクティブなユーザー
http://drupal.org/project/inactive_user
inactive_userモジュールは、Drupal管理者に非アクティブなユーザーアカウントを自動的に管理する方法を提供します。このモジュールには2つの目標があります。設定可能な期間ユーザーがいなくなったときにユーザーに通知することにより、ユーザーがサイトに再びアクセスできるようにすることと、未使用のアカウントをクリーンアップすることです。