[TYPO3-german] Email an FE-User nach Contentupdate

Stephan Schuler Stephan.Schuler at netlogix.de
Wed Aug 7 18:01:43 CEST 2013


Hallo Ulrich.


Du sprichst von deiner eigenen Extension, kannst also selbst entscheiden was du machst und was nicht?

Ich würde ebenfalls vorschlagen, dass du einen schedulerbasierte Lösung verwendest.

Grundsätzlich kennt man dieses Verfahren ja von diversen Foren: Sobald man einen Thread abonniert hat, wird man per E-Mail über neue Posts benachrichtigt -- allerdings nur einmal, bis man wieder einen Klick auf der Webseite gemacht hat.
Das ist zwar eine schöne Variante, allerdings auch recht aufwändig. Du müsstest dir dazu ja pro Benutzer merken, ob er bei der nächsten Änderung wieder benachrichtigt werden muss oder nicht. Im einfachsten Fall ist das ein Attribut des fe_users (nodificationSent), das auf TRUE gestellt wird wenn sobald er eine Benachrichtigung erhalten hat, auf FALSE bei jedem Click und das dafür sorgt, dass Änderungsbenachrichtigungen nur dann verschickt werden, wenn der Benutzer in diesem Feld FALSE stehen hat. Wenn der Benutzer Mitglied mehrere Gruppen sein kann, müsste das Flag nicht an den fe_user sondern an eine Relation zwischen Benutzer.
Kurz: Das ist viel Aufwand, den zu betreiben sich ggf. nicht lohnt.

Sollten deine Änderungen nicht allzu zeitkritisch sein, würde ich einen Scheduler basteln, der einen Daily Report verschickt. Sehr aktive Redakteure sehen ohnehin öfter vorbei, wenig aktive Redakteure sind bei einer Änderungsbenachrichtigung pro fünf Minuten trotzdem nicht dazu zu bewegen, häufiger als einmal täglich die Änderungen zu lesen.

Abhängig von der erwarteten Änderungsrate und der gewünschten längsten Benachrichtigugnsverzögerung (also wenn du z.B. den Scheduler alle fünf Minuten laufen lässt und zu Peakzeiten praktisch minütlich Änderungen hast) ist das allerdings auch keine benutzerfreundliche Variante. Dann wiederum zwingt sich die umfangreiche Variante mit "per-user-Flag" eigentlich auf.

Wenn du viele Benutzer hast und alle persönlich ansprechen willst, also jedem Benutzer eine einzelne E-Mail zukommen lassen willst, in der jeweils er und nur er im "TO"-Feld genannt ist, wirst du ebenfalls nicht um einen Scheduler herum kommen. Der durchschnittliche Redateur will jedenfalls keine 15 Sekunden auf den Speicher-Button warten, nur damit 600 Benachrichtigungs-E-Mails verschickt werden können. Ein Scheduler-Task (auch wenn der einmal pro Minute läuft) entkoppelt das und erzeugt für den aktiven Redakteur eine flüssigere Benutzerführung. Dass für ihn fremde Leute erst eine Minute später benachrichtigt werden ist dem Redakteur dagegen vermutlich recht egal.

Mit powermail wirst du hier nichts reißen können. Ich wüsste nicht, wie man das sinnvoll ansteuern kann.

Schreib dir stattdessen einen kleines Extbase-Element. Der Scheduler-Task hierfür ist recht rudimentär ausgestattet um sinnvoll z.B. Links verwenden zu können brauchst du ein minimales TSFE. Anders funktioniert der TypoLink-Mechanismus nicht. Meiner Erfahrung nach bietet sich hier an, die eID-Tools im Scheduler-Task zu missbrauchen.

Das Vorgehen ist dann innerhalb des Tasks recht einfach:
* Mit den eID-Tools das TSFE booten
* Liste der zu benachrichtigenden fe_user aus der Datenbank holen
* Liste der geänderten pages aus der Datenbank holen
* Fluid-Standalone-Template mit den geänderten pages füllen und einmal pro fe_user rendern lassen
* Ein t3lib_mail_Message-objekt erzeugen und das je fe_user einmal mit dem zugehörig gerenderten Templateoutput füllen und $mail->send() aufrufen

Wenn es genügt dass alle Benutzer die gleiche E-Mail erhalten kannst du auch einfach eine Dummy-E-Mail-Adresse als "To" verwenden, alle fe_user als "BCC" angeben und nur eine E-Mail verschicken. Der Vorteil daran ist, dass du nur ein einziges Template rendern musst und PHP-Seitig nur eine einzige E-Mail verschickt wird. Die Last liegt also nicht auf dem PHP-Server. Der Nachteil ist allerdings, dass die E-Mail-Inhalte dann nicht personalisiert werden können.


Gruß,


Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de



--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von ulrich
Gesendet: Mittwoch, 7. August 2013 12:18
An: German TYPO3 Userlist
Betreff: [TYPO3-german] Email an FE-User nach Contentupdate

Hallo Liste,
bin gerade dabei mein erstes Typo3 6.x Projekt zu planen.

Dabei hab ich nun eine Frage:

Es gibt eine FE-Usergruppe die in einem bestimmten Bereich Daten eingeben können.
Nach Eingabe der Daten, soll eine Mail an alle FE-User der Gruppe mit den Daten rausgehn.

Was wäre denn der beste Ansatz sowas zu machen?
Funktioniert das zb mit sowas wie Powermail (hab noch nicht damit gearbeitet)? Empfänger ist dann einfach die FE-Gruppe?
Oder muss ich dafür den Weg über den Scheduler gehen?
Oder beides?

Vielen Dank und viele Grüße
Ulrich
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list