Plugins:TuxMail

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche


Allgemeines

Mit TuxMail ist es möglich bis zu 10 POP3-Konten direkt über die DBox2 abzufragen und Informationen wie Datum, Zeit, Absender und Betreff einer Mail über den TV sowie eine Kurzübersicht über das LCD auszugeben. Das Lesen oder Schreiben von Mail wird nicht unterstützt und ist auch in Zukunft nicht geplant.


Das Programm besteht aus 2 Teilen:

  • dem Daemon (tuxmaild), welcher im Hintergrund läuft und die Konten in festgelegten Intervallen auf Maileingang prüft und ausgewählte Mail löscht
  • dem Plugin (tuxmail.so + tuxmail.cfg), welches die Infos nach Konten sortiert auf dem TV und LCD darstellt und den Daemon steuert


Sobald der Daemon neue Mail gefunden hat wird eine optische (und optional akustische) Benachrichtigung ausgelöst um dem Nutzer den Maileingang zu signalisieren. Dies kann über ein Nachrichtenfenster erfolgen oder das Plugin kann gleich gestartet werden.


400px


Um bei einer interessanten Sendung nicht gestört zu werden kann die Kontenabfrage über das Plugin angehalten und auch wieder gestartet werden. Damit ist es auch möglich eine manuelle Kontenprüfung außerhalb des festgelegten Intervalls auszulösen.


Sollte sich mal wieder unerwünschte Mail verirrt haben kann diese gleich über das Plugin zum Löschen markiert werden - der Daemon erledigt dann den Rest. Ein einfacher Spamfilter (Absenderadresse bzw. Teiladresse) ist ebenfalls enthalten.


Konfiguration

Damit der Daemon die Konten überprüfen kann benötigt er Angaben wie Mailserver, Nutzername und Passwort. Diese müssen in die Datei tuxmail.conf im Verzeichnis /var/tuxbox/config/tuxmail eingetragen werden.


Der Daemon erzeugt beim ersten Start das Verzeichnis sowie eine Datei mit Standardwerten falls diese nicht existiert und beendet sich wieder. Hier können nun die erforderlichen Angaben eingetragen oder alternativ eine fertige Datei vom PC per FTP übertragen werden.


Die Datei hat folgenden Aufbau:

Eintrag Bedeutung mögliche Werte Standard
STARTDELAY Wartezeit bis der Daemon mit der ersten Kontenabfrage beginnt
(die GUI benötigt einige Zeit zum starten)
15...60 30 Sekunden
INTERVALL Abstand zwischen den Kontenabfragen 5...60 15 Minuten
POP3LOG Protokoll der Serververbindung speichern (/tmp/tuxmaild.log) Y / N Y
LOGMODE Protokollmodus (letzte Sitzung / alle Sitzungen) S / A S
SAVEDB Mail-DB beim Beenden sichern / Starten wiederherstellen Y / N Y
AUDIO akustische Signalisierung Y / N Y
VIDEO optische Signalisierung
(Message: muss per Fernbedienung bestätigt werden)
(Popup: wird nach einiger Zeit automatisch geschlossen)
1 = Plugin starten
2 = Enigma Popup
3 = Neutrino Message
4 = Neutrino Popup
1
LCD Anzeige des Mailstatus auf dem LCD Y / N Y
ADMIN Löschen von Mails erlauben / verbieten Y / N Y
WEBPORT Port des Webinterface der dbox 0 - 65535 80
WEBUSER Benutzername für das Webinterface der dbox Text ohne Leerzeichen von bis zu 32 Zeichen leer
WEBPASS Passwort für das Webinterface der dbox Text ohne Leerzeichen von bis zu 32 Zeichen leer
NAME? angezeigter Name des Kontos im Plugin Text ohne Leerzeichen von bis zu 32 Zeichen leer
HOST? Mailserver Text ohne Leerzeichen von bis zu 64 Zeichen leer
USER? Nutzername Text ohne Leerzeichen von bis zu 64 Zeichen leer
PASS? Passwort (falls nicht erforderlich z.B. "-" eintragen) Text ohne Leerzeichen von bis zu 64 Zeichen leer


Die Einträge "STARTDELAY", "INTERVALL", "POP3LOG", "LOGMODE", "SAVEDB", "AUDIO", "VIDEO", "LCD", "ADMIN" und "WEBxxxx" sind global, d.h. diese Einstellungen gelten für alle Konten und müssen somit nur einmal eingetragen werden.

WEBUSER und WEBPASS können leer gelassen werden, wenn das Webinterface keine Authorisation erfordert.

Für das "?" bei "NAME", "HOST", "USER" und "PASS" sind Werte von 0...9 möglich. Bei weniger als 10 Konten können die entsprechenden Einträge entfallen oder einfach leer gelassen werden.


Konfigurationsbeispiel "tuxmail.conf"

STARTDELAY=30
INTERVALL=15
POP3LOG=Y
LOGMODE=S
AUDIO=Y
VIDEO=1
LCD=Y
ADMIN=Y
WEBPORT=80
WEBUSER=
WEBPASS=
NAME0=Kontoname
HOST0=Mailserver
USER0=Kennung
PASS0=Passwort

Spamfilter aktivieren

Um lästige Werbemail gleich zu löschen kann der Spamfilter aktiviert werden. Hierfür ist die Datei spamlist im Verzeichnis /var/tuxbox/config/tuxmail anzulegen und bis zu 100 unerwünschte Absenderadressen bzw. Teiladressen einzutragen. Über das Plugin kann das auch automatisch erfolgen.

Die Löschung vom Server erfolgt hierbei ohne Sicherheitsabfrage! Überlegt also genau was hier eingetragen werden soll: eine Zeile nur mit "@" oder "." löscht mit Sicherheit JEDE Mail...


Konfigurationsbeispiel "spamlist"

neu@web.de
mailings@gmx


Bedienung

Zum starten des Plugins unter Neutrino [BLAU] drücken und dann den Eintrag "E-Mail" wählen. Unter Enigma zunächst [D-BOX] / [DREAM] drücken, "Spiele" öffnen und dann "E-Mail" wählen.


Das Plugin zeigt nun das Konto #0 (oder falls neue Mail vorliegt das erste Konto mit neuer Mail) an. Jede Mail ist farbig gekennzeichnet und hat dabei folgende Bedeutung:

20px diese Mail ist seit der letzten Kontenabfrage neu hinzugekommen
20px diese Mail war bei der letzten Kontenabfrage bereits vorhanden
20px diese Mail soll bei der nächsten Kontenabfrage gelöscht werde


Konto auswählen

Mit [+] [-] / [VOLUME +] [VOLUME -] kann das nächste bzw. vorhergehende Konto angezeigt werden. Ungenutzte Konten werden hierbei übersprungen. Eine Direktwahl (auch ungenutzter Konten) erfolgt über [0]...[9].


Mail löschen

Mittels [HOCH] [RUNTER] kann die vorhergehende bzw. nächste Mail ausgewählt und durch einen Druck auf [OK] zum Löschen vorgemerkt werden. Ein weiterer Druck auf [OK] hebt die Markierung wieder auf. Seitenweise kann mit [RECHTS] [LINKS] geblättert werden.


Alle Mails eines Kontos können mit [ROT] gelöscht werden, neue mit [GRÜN] und alte mit [GELB]. Die Markierung kann mit den entsprechenden Tasten auch wieder aufgehoben werden.


Beim verlassen des Plugins werden diese Informationen gespeichert und somit aktiv. Die Löschung vom Mailserver erfolgt jedoch erst bei der nächsten Abfrage des Kontos durch den Daemon.


Spamfilter erweitern

Mit [BLAU] wird die momentan selektierte Mail (Absenderadresse) zur Spamliste hinzugefügt. Sollte bisher noch keine Liste existieren wird diese automatisch angelegt. Gleichzeitig wird die Mail zum Löschen markiert. Sollten sich bereits weitere Mails dieses Absenders in der Datenbank befinden müssen diese manuell gelöscht werden.


Kontenabfrage steuern

Normalerweise wird der Daemon beim Start der Box automatisch gestartet und fragt die Konten im festgelegten Intervall periodisch ab. Die Abfrage kann auch mit [MUTE] gesteuert werden, z.B. wenn man eine Sendung ungestört ansehen oder eine manuelle Prüfung auslösen möchte. Ein Druck schaltet die Abfrage aus, ein weiterer wieder ein.


200px 200px


Die Konten werden beim Reaktivieren der Abfrage sofort geprüft. Einige Mailserver haben jedoch ein minimales Loginintervall (z.B. web.de FreeMail = 15min). Mehrfache Anfragen innerhalb dieser Zeit sind nutzlos und werden vom Server mit einem entsprechenden Hinweis abgelehnt.

Um im Standby eine Kontenabfrage zu unterbinden können unter Enigma die Scripte "/var/etc/enigma_enter_standby.sh" und "/var/etc/enigma_leave_standby.sh" mit dem Inhalt "if [ -e /tmp/tuxmaild.pid ]; then kill -usr1 $(cat /tmp/tuxmaild.pid); fi" angelegt werden.

Die Abfrage wird somit mit dem Beginn des Standby pausiert und startet erst beim Ende des Standby wieder. Eingehende Nachrichten während dieser Zeit werden nun nicht mehr verpasst.

Autostart festlegen

Über das Plugin kann auch der Start des Daemon kontrolliert werden. Ein Druck auf [STANDBY] aktiviert den Autostart, ein weiterer deaktiviert diesen wieder.


200px 200px


Vom Plugin wird dabei unter /var/etc die Datei .tuxmaild angelegt oder gelöscht. Eine vorhandene .tuxmaild bedeutet das der Autostart aktiviert ist. Allerdings muss dies vom Initscript der DBox2 (bei AlexW ab 15.04.03 Standard) oder dem Startscript der jeweiligen GUI (start_enigma, start_neutrino, start_lcars) ausgewertet werden.


Scriptbeispiel zum Daemon starten

if [ -e /var/etc/.tuxmaild ]; then /Pfad zum Daemon/tuxmaild; fi

Ohne einen aktiven Daemon findet keine Kontenabfrage statt und im Plugin wird somit "keine Info verfügbar" angezeigt. Der Autostart muss vom Nutzer also erst einmal aktiviert werden da er standardmäßig deaktiviert ist. Bei jedem Start der DBox2 bzw. GUI wird er danach automatisch gestartet.


Plugin verlassen

Das Plugin kann mittels [HOME] beendet werden. Dabei werden die Datenbanken upgedatet und der Daemon kann bei der nächsten Abfrage die zum Löschen selektierte Mail vom Server entfernen.

Kommandozeile

Der Daemon kann auch von der Kommandozeile aus gestartet bzw. kontrolliert werden. Folgende Startparameter sind derzeit möglich:

  • nodelay : die Konten werden sofort nach dem Start abgefragt und das festgelegte STARTDELAY übergangen


Sobald der Daemon läuft kann er über Signale an seine PID gesteuert werden. Die PID kann auf 2 Arten ermittelt werden:

  • verwenden des Befehls "ps | grep tuxmaild" oder "pidof tuxmaild" und nutzen der kleinsten aufgelisteten PID
  • auslesen aus der Datei /tmp/tuxmaild.pid z.B. mit "cat /tmp/tuxmaild.pid"


Damit kann nun die Konfiguration aktualisiert, die Kontenabfrage gesteuert oder der Daemon sauber beendet werden.


Konfiguration aktualisieren

Falls zur Laufzeit die Konfiguration geändert wurde kann der Daemon die neue Konfiguration einlesen ohne hierfür extra beendet und neugestartet zu werden:

kill -HUP <PID> bzw. kill -1 <PID>


Kontenabfrage steuern

Die Kontenprüfung kann ebenfalls unterbrochen und wieder gestartet werden ohne den Daemon zu beenden. Der erste Aufruf stoppt die Anfrage, ein weiterer Aufruf setzt diese wieder fort:

kill -USR1 <PID> bzw. kill -10 <PID>


Daemon beenden

Ein sauberes Beenden mit Sicherung der Datenbanken erfolgt mit diesem Befehl:

Kill -TERM <PID> bzw. kill -15 <PID> oder einfach mit kill <PID>

Zur Laufzeit des Daemon wird pro Konto eine Datenbank geführt, welche alle relevanten Daten enthält. Um den Flash zu schonen befinden sich diese Datenbanken unter /tmp/tuxmail.n (n = 0...9) im RAM. Beim Beenden werden diese Dateien nach /var/tuxbox/config/tuxmail gesichert damit diese beim nächsten Start nach /tmp zurückkopiert werden können und somit wieder zur Verfügung stehen.

Damit diese Dateien aber beim Herunterfahren der Box gesichert werden können muss der Daemon sauber beendet werden (bei AlexW ab 15.04.03 Standard) bevor das JFFS2-Filesystem ungemountet wird!


Scriptbeispiel zum Daemon beenden

kill -term $(</tmp/tuxmaild.pid)
sleep 3


LCD

Im LCD wird eine Übersicht des gewählten Kontos dargestellt. Angezeigt wird der Status des Daemon, die Nummer des Kontos, Zeitpunkt der letzten Abfrage sowie Anzahl neuer und gesamter Mails.


Datei:TuxMail09.jpg


Oben links ist erkennbar ob der Daemon läuft bzw. die Kontenprüfung aktiv oder inaktiv ist. Das Symbol "OFL" bedeutet das der Daemon derzeit nicht geladen ist (z.B. wenn der Autostart deaktiviert ist) und demzufolge keine Prüfung der Konten erfolgt, "ONL" zeigt an das die Konten im festgelegten Intervall abgefragt werden und bei "PAU" ist die Kontenabfrage derzeit deaktiviert.

Dahinter wird die momentan gewählte Kontonummer angezeigt und im Anschluss daran der Zeitpunkt der letzten Abfrage.

In der unteren Zeile wird nun noch die Anzahl der neuen und gesamten Mails für das Konto ausgegeben.