Drupal 7 E-Mail Ausgabe debuggen / protokollieren mit DevelMailLog

Drupal 7 E-Mail Ausgabe debuggen / protokollieren mit DevelMailLog

Heute möchte ich Euch in einem kurzen HowTo zeigen, wie ihr E-Mails aus Drupal ganz einfach mithilfe des Moduls devel.module und mailsystem.module (oder einer settings.php Konfigurationseinstellung) abfangen und den Quellcode debuggen könnt.

Ein solches Debugging ist hilfreich, wenn ihr z.B. mit Darstellungsfehlern in E-Mail Programmen zu kämpfen habt und Euch nicht sicher seid, welcher Code tatsächlich beim Mail Client angelangt.
Es gibt natürlich zahlreiche Alternativen zu diesem Verfahren, z.B. die E-Mails serverseitig abzufangen oder mit einem sehr einfachen E-Mail Client zu arbeiten. Die hier beschriebene Methode verhindert zusätzlich, dass Test-E-Mails tatsächlich versandt werden und ist relativ bequem in 3 Schritten umzusetzen:

So geht's:

1. Modul(e) installieren:

Zunächst müsst ihr devel.module und optional mailsystem.module wie gewohnt installieren.

2. Konfiguration / Aktivierung:

2a. (Nur bei Verwendung von Mailsystem) - Mailsystem Konfiguration:

Lasst in Mailsystem (admin/config/system/mailsystem) eine neue Mail-Handler Klasse generieren, indem ihr unter "New Class" als format() "MimeMailSystem" wählt (oder welches System ihr zum Formatieren der Mails auch immer einsetzt!)

Für die mail() Funktion wählt ihr nun "DevelMailLog", damit die formatierte Ausgabe nicht verschickt, sondern in das Devel E-Mail Protokoll geschrieben werden

2b. (Ohne Mailsystem) - settings.php erweitern

Ergänzt dazu einfach eine entsprechende Konfiguration in der settings.php, um das zu verwendende Mailsystem umzuschalten:

  1. $conf['mail_system'] = array(
  2. 'default-system' => 'DevelMailLog',
  3. );

Details:
http://www.webomelette.com/drupal-modules-debug-emails

3. Testmail senden und Pfad abrufen

Wie der Funktion DevelMailLog::getOutputDirectory()

  1. public function getOutputDirectory() {
  2.   return variable_get('devel_debug_mail_directory', 'temporary://devel-mails');
  3. }

zu entnehmen ist, werden die protokollierten E-Mails in das in der Drupal Variablen "devel_debug_mail_directory" festgelegte Verzeichnis geschrieben. Diese Variable könnt ihr entweder individuell anpassen (mit Programmierkenntnissen) oder ihr ruft die Log-Dateien nun einfach aus Eurem temporären Verzeichnis ab (welches ihr unter "Dateisystem" in der Drupal Konfiguration festgelegt habt).

Dort wird für jede protokollierte E-Mail eine eigene Log-Datei im Verzeichnis "devel-mails" angelegt.

Das war's! :)

Nicht vergessen die Einstellung zum Go-Live wieder anzupassen oder direkt dynamisch anhand des environments zu lösen.

Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt. Wenn Sie ein zulässiges Avatar mit Ihrer E-Mail-Adresse verknüpft haben, wird dieses als Avatar verwendet.

Weitere Informationen über Formatierungsoptionen

Aktualisieren Geben Sie die Zeichen ein, die Sie im Bild sehen. Geben Sie die im Bild dargestellten Zeichen ein; wenn Sie diese nicht lesen können, senden Sie das Formular ohne Eingabe ab, um ein neues Bild zu generieren. Groß-/Kleinschreibung wird nicht beachtet.  Switch to audio verification.