Plugins:TuxMail

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche


Allgemeines

Mit TuxMail ist es möglich bis zu 10 POP3 oder IMAP-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. Mails können ebenfalls über die Box gelesen und geschrieben werden. Das Plugin kann sowohl mit der Fernbedienung, als auch mit der IR-Tastatur bedient werden. Wenn die erste Zeile einer empfangenen Mail mit der SECURITY Angabe in der Datei tuxmail.conf übereinstimmt, werden alle nachfolgenden Zeilen dieser Mail als Befehle für die Box interpretiert und ausgeführt.


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 eine neue Mail gefunden hat wird eine optische und/oder akustische Benachrichtigung ausgelöst um dem Nutzer den Maileingang zu signalisieren. Dies kann über ein Nachrichtenfenster erfolgen oder das Plugin kann gleich gestartet werden.


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 eine 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.

Damit diese Datei erzeugt wird, muss das Plugin gestartet werden und der Autostart aktiviert werden, danach die Box neu starten.

Mit dem Plugins kann durch drücken von [DBOX] die Konfiguration bearbeitet 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
LOGGING 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
(Eine benutzerdefinierte 12/24/48KHz PCM Wave-Datei kann unter /var/tuxbox/config/tuxmail/tuxmail.wav abgelegt werden.)
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
5 = keine Signalisierung
1
LCD Anzeige des Mailstatus durch den Daemon auf dem LCD Y / N Y
OSD TV-Ausgaben in Deutsch oder Englisch G / E G
SKIN Farbpalette wählen (1=blau, 2=grau) 1 / 2 1
ADMIN Löschen von Mails erlauben / verbieten Y / N Y
TYPEFLAG Wann werden Mails im Plugin grün markiert 1 .. 3 1
CONFIGCODE Sicherheits-PIN (Zugriff auf Konfigurationsmenü erst nach Eingabe möglich) 0000...9999 leer
MAILCACHE Mails werden schon bei der Kontoabfrage gelesen und gesichert (0=kein Lesen) 0..99 0
MAILDIR In welches Verzeichnis sollen die Mails gesichert werden /directory/ /tmp/
SECURITY Zeichenfolge die das Ausführen einer Mail bewirkt Text ohne Leerzeichen von bis zu 64 Zeichen leer
WEBPORT Port des Webinterface der dbox 1 - 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
POP3? POP3 Maileingangsserver Text ohne Leerzeichen von bis zu 64 Zeichen leer
IMAP? IMAP Maileingangsserver 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
SMTP? Mailausgangsserver Text ohne Leerzeichen von bis zu 64 Zeichen leer
FROM? Absender-Adresse Text ohne Leerzeichen von bis zu 64 Zeichen leer
CODE? Sicherheits-PIN (Zugriff auf Konto erst nach Eingabe möglich, z.B. bei mehreren Familien-Mitgliedern) 0000...9999 leer
AUTH? Authentifizierungsmethode für SMTP 0: keine, 1: POP3 Parameter, 2: SUSER? und SPASS? 0
SUSER? Nutzername für SMTP Text ohne Leerzeichen von bis zu 64 Zeichen leer
SPASS? Passwort für SMTP Text ohne Leerzeichen von bis zu 64 Zeichen leer
INBOX? Ordner für IMAP Text ohne Leerzeichen von bis zu 64 Zeichen leer


Die Einträge "STARTDELAY", "INTERVALL", "LOGGING", "LOGMODE", "SAVEDB", "AUDIO", "VIDEO", "LCD", "OSD", "SKIN", "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", "POP3", "IMAP", "USER", "PASS", "SMTP", "FROM", "CODE", "AUTH", "SUSER", "SPASS" und "INBOX" sind Werte von 0...9 möglich. Bei weniger als 10 Konten können die entsprechenden Einträge entfallen oder einfach leer gelassen werden. Es darf nur entweder der Eintrag "POP3" oder der Eintrag "IMAP" verwendet werden. Wenn nicht das Standardport verwendet werden soll ist dies mit "Mailserver:Port" anzugeben. Wird der Eintrag INBOX leer gelassen, wird der Standardwert "INBOX" verwendet.


Konfigurationsbeispiel "tuxmail.conf"

STARTDELAY=30
INTERVALL=15
LOGGING=Y
LOGMODE=S
SAVEDB=Y
AUDIO=Y
VIDEO=1
LCD=Y
OSD=G
SKIN=1
ADMIN=Y
TYPEFLAG=1
MAILCACHE=10
MAILDIR=/tmp/
SECURITY=
WEBPORT=80
WEBUSER=
WEBPASS=
NAME0=Kontoname
POP30=Maileingangsserver
USER0=Kennung
PASS0=Passwort
SMTP0=Mailausgangsserver
FROM0=Absender
CODE0=1234
AUTH0=0
SUSER0=
SPASS0=

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


Konfigurationsbeispiel "tuxmail.addr"

freundin@web.de
geliebte@gmx.de
frau@zuhause.de

Das ist ein vordefiniertes Adressbuch, aus dem beim Schreiben einer Mail ausgewählt werden kann.


Konfigurationsbeispiel "mailtext.01"

Hallo,
ich sitze derzeit vor dem Fernseher und habe keine Zeit.
cu.
Dein Satreceiver

Das ist ein vordefinierter Mailblock, der beim Schreiben einer Mail ausgewählt werden kann.


Konfigurationsbeispiel "tuxmail.t9 ???"

Aachen,Aal,Aas,ab,Abakus...
Baal,Baas,babbeln,Babel...
C...

T9: Text on 9 keys, eine Erfindung zur vereinfachten Eingabe von SMS bei Handys

T9 ist derzeit noch nicht implementiert

Bedienung

Zum Starten des Plugins [BLAU] drücken und dann den Eintrag "E-Mail" wählen.

Das Plugin zeigt nun das Konto #0 (oder falls neue Mail vorliegt das erste Konto mit neuer Mail) an.


TuxMail01.png


Jede Mail ist farbig gekennzeichnet und hat dabei folgende Bedeutung:

TYPEFLAG=1

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 werden

TYPEFLAG=2

20px es wurde noch keine neue Kontenabfrage durchgeführt seit diese Mail neu hinzugekommen ist
20px diese Mail war schon vorhanden seit das Plugin geöffnet wurde und eine neue Kontenabfrage durchgerührt wurde
20px diese Mail soll bei der nächsten Kontenabfrage gelöscht werden

TYPEFLAG=3

20px diese Mail ist seit dem letzten Öffnen des Plugins neu hinzugekommen
20px diese Mail war beim letzten Öffnen des Plugins bereits vorhanden
20px diese Mail soll bei der nächsten Kontenabfrage gelöscht werden


Konto auswählen

Mit [+] [-] bzw. [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].

Falls eine PIN für dieses Konto definiert wurde wird diese zunächst abgefragt und muss mit [0]...[9] eingegeben oder mit [HOME] bzw. [EXIT] abgebrochen werden.


TuxMail11.png TuxMail12.png TuxMail13.png TuxMail14.png


Nach 3 Fehlversuchen wird das Konto gesperrt. Ein Zugriff ist erst nach neustarten des Plugins wieder möglich.


Mail löschen

Mittels [HOCH] [RUNTER] kann die vorhergehende bzw. nächste Mail ausgewählt und durch einen Druck auf [ROT] zum Löschen vorgemerkt werden. Ein weiterer Druck auf [ROT] hebt die Markierung wieder auf. Seitenweise kann mit [RECHTS] [LINKS] geblättert 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.


Mail schreiben

Um eine Mail zu schreiben [GRÜN] drücken.

Der Absender der selektierten Mail wird dabei automatisch als Empfänger eingetragen und der Betreff um "Re: " erweitert.

Vorgefertigte Textblöcke können mit den Namen tuxmail.01, tuxmail.02 usw. in /var/tuxbox/config/tuxmail abgelegt werden. Eine Adressenliste kann mit dem Namen tuxmail.addr in /var/tuxbox/config/tuxmail abgelegt werden.

Zeichen können mit [MUTE] gelöscht und mit [BLAU] bzw. [RECHTS] eingefügt werden. Die Zeile kann mit [HOCH] und [RUNTER] gewechselt werden. Textblöcke bzw. die letzte gelesene EMail können mit [+] [-] bzw. [VOLUME +] [VOLUME -] gewechselt werden ( im Mode Texte ), Adressen aus der Adressenliste können ebenfalls mit [+] [-] bzw. [VOLUME +] [VOLUME -] gewechselt werden wenn die entsprechende Zeile ausgewählt ist.

Die Mail wird mit [OK] gesendet oder mit [HOME] bzw. [EXIT] verworfen.


Mail lesen

Um eine Mail zu lesen [GELB] drücken.

Die ausgewählte Mail wird nun (ohne sie zu löschen) vom Server geladen bzw. die schon vorher geladene Mail wird ausgewählt und angezeigt. Durch die Anzeige kann mittels [LINKS] / [HOCH] und [RECHTS] / [RUNTER] geblättert werden. Zurück kommt man mit [HOME] bzw. [EXIT].


Mail ausführen

Wenn die Optionen MAILCACHE und MAILDIR, sowie SECURITY gesetzt sind, wird jede vom Daemon gelesene Mail ausgewertet. Damit der Inhalt einer Mail ausgeführt wird, muss die erste Zeile dieser Mail exakt mit der in SECURITY definierten Zeichenfolge übereinstimmen. Alle weiteren Zeilen werden dann als Befehle auf der Box exekutiert.

Da Mails beim Lesen vom Daemon eine maximale Zeilenlänge von 80 Zeichen haben, müssen Befehle, um aus mehreren Zeilen zusammengesetzt werden zu können, am Zeilenende ein & Zeichen haben.


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. Das Löschen und das Hinzufügen zur Spamliste kann mit [BLAU] wieder rückgängig gemacht werden.


TuxMail15.png TuxMail16.png


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 kann unter Enigma das Script "/var/etc/enigma_enter_standby.sh" sowie unter Neutrino das Script "/var/tuxbox/config/standby.on" mit dem Inhalt "if [ -e /tmp/tuxmaild.pid ]; then kill -usr2 $(cat /tmp/tuxmaild.pid); fi" angelegt werden. Zum Fortsetzen der Kontenabfrage muss unter Enigma das Script "/var/etc/enigma_leave_standby.sh" sowie unter Neutrino das Script "/var/tuxbox/config/standby.off" mit dem Inhalt "if [ -e /tmp/tuxmaild.pid ]; then kill -usr1 $(cat /tmp/tuxmaild.pid); fi" angelegt werden.

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


Versionsnummern anzeigen

Zur Fehlereingrenzung ist die genutzte Version von Daemon und Plugin wichtig. Diese kann durch drücken von [?] bzw. [INFO] ermittelt werden.


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 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
  • -syslog : die Informationen werden nicht auf die Konsole ausgegeben sondern an einen Syslog-Server gesendet
  • -play <audio-Datei> : die angegebene Audio-Datei wird gespielt, der Daemon wird nicht gestartet
  • -send <Kontonummer> <Empfängeradresse> <Text-Datei> : die angegebene Datei wird mit den Kontoeinstellungen der übergebenen Kontonummer an die Empfängeradresse gesendet, wobei die erste Zeile der Datei als Subject interpretiert wird. Der Daemon wird nicht gestartet


Um alle Ausgaben des Daemons auf seinen PC umzuleiten muss auf der Box mittels "syslogd -R <IP-Adresse des PC>" das Logging aktiviert werden. Auf dem PC muss natürlich ein Syslog-Server installiert sein, welcher die Ausgaben entgegen nimmt. Zur lokalen Speicherung auf der Box genügt ein "syslogd" ohne Parameter. Die Ausgaben werden so unter /var/log/messages gespeichert. Alternativ kann durch "syslogd -O <Pfad der Logdatei>" auch ein anderer Pfad eingestellt werden.


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.

kill -USR1 <PID> bzw. kill -10 <PID> startet die Kontenprüfung,
kill -USR2 <PID> stoppt die Kontenprüfung,


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 beim Herunterfahren der Box gesichert werden können, muss der Daemon sauber beendet werden bevor das JFFS2-Filesystem ungemountet wird!


Scriptbeispiel zum Daemon beenden

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


LCD

Plugin

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.


Daemon

Ist die Option "LCD=Y" gesetzt gibt auch der Daemon den Mailstatus auf das LCD aus.


TuxMail10.png


Diese Anzeige bleibt solange aktiv (die Anzahl neuer Mails wird bei jeder Kontenabfrage aktualisiert) bis das Plugin gestartet und wieder beendet wird. Erst mit dieser Aktion wird die Sperrdatei /tmp/lcd.locked gelöscht und die Zählung beginnt wieder bei Null.

Damit ist z.B. sichergestellt, dass bei Abwesenheit keine Mails verpasst werden und bei Rückkehr der aktuelle Status sofort im LCD sichtbar ist.

Hinweis: Diese Funktion kann nur genutzt werden, wenn die GUI die Sperrdatei auswertet und bei Vorhandensein das LCD nicht mehr durch eigene Ausgaben überschreibt!