Wie kann ich E-Mails an Benutzer senden, die seit 30 Tagen nicht mehr angemeldet sind?


7

Ich verwende Drupal 7 und möchte E-Mails an registrierte Benutzer senden, die sich seit 30 Tagen nicht mehr auf der Website angemeldet haben. Zum Beispiel eine E-Mail mit den Worten:

Hallo Benutzer, Sie sind seit 30 Tagen nicht mehr angemeldet.

Gibt es irgendeinen Weg?

Antworten:


8

Sie können dazu das Modul Regeln verwenden.

Erstellen Sie eine Regel, die ausgelöst wird, wenn sich ein Benutzer anmeldet. Erstellen Sie diesen Regelplan , um diese E-Mail innerhalb von 30 Tagen zu senden. Lassen Sie die Kennung der Aufgabe so etwas wie sein 30-days reminder for [account:uid]. Auf diese Weise wird die geplante Aufgabe überschrieben, wenn sich der Benutzer innerhalb der nächsten 30 Tage anmeldet. Dabei wird die 30-Tage-E-Mail gesendet.

Stellen Sie sicher, dass Sie das Regelplanungsmodul aktivieren.


2
Diese Reihe von Video-Screencasts auf Rules Scheduler erklärt dies ausführlicher: nodeone.se/sv/node/770
Patrick Kenny

@PatrickKenny: Sei dir bewusst, dieser Link ist kaputt. Können Sie sich einen Ersatz vorstellen?
Pierre.Vriens


1

Schauen Sie sich das Benutzerstatistik- Modul an, es könnte etwas sein, das für Sie funktionieren könnte. Von der Projektseite des Moduls:

Bietet häufig angeforderte Benutzerstatistiken für Themen, IP-Adressverfolgung und Views-Integration. Statistiken sind:

  • Tage registriert
  • Beitrittsdatum Tage seit dem letzten Login
  • Tage seit dem letzten Beitrag

usw. und dann können Sie Cronjob verwenden, um E-Mails zu senden.


0

Eine andere Möglichkeit wäre, hook_cron zu implementieren. so was:

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);
  }
}

Außerdem müssen Sie eine Warteschlange mit hook_cron_queue_info implementieren, wie hier gezeigt:

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

Sie müssen auch die Funktion "yourmodulename_send_email30days" implementieren: dh

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

Sie können das inaktive Benutzermodul ausprobieren :

Inaktiver Benutzer
http://drupal.org/project/inactive_user

Das Modul inactive_user bietet Drupal-Administratoren die Möglichkeit, inaktive Benutzerkonten automatisch zu verwalten. Dieses Modul hat zwei Ziele: Es soll dazu beitragen, dass Benutzer nicht mehr auf Ihre Website zurückkehren, indem sie daran erinnert werden, wenn sie für einen konfigurierbaren Zeitraum nicht da waren, und nicht verwendete Konten bereinigen.


Inactive_user hat 0 Dokumentation und tut nichts.
sea26.2

inactive_user ist nicht gewartet und hat einige schwerwiegende Fehler (wie das Senden von Benachrichtigungen an blockierte Benutzer)
rfay
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.