[Gelöst] Mit checkmaild E-Mail-Inhalt auf Samsung-TV anzeigen?

Bibie

Aktives Mitglied
Mitglied seit
4 Jul 2008
Beiträge
2,872
Punkte für Reaktionen
4
Punkte
0
Womit oder wie kann ich den E-Mail-Inhalt auslesen?

Hallöchen Ihr lieben Feetzer!

Ich bin seit kurzem Freetz-Neueinsteiger und habe auf meiner FB7270v2 erfolgreich 54.04.80freetz-1.1-stable mit callmonitor und checkmaild erstellt. Der callmonitor funktioniert soweit ganz gut (es werden alle eingehenden Anrufe am Samsung-TV angezeigt).

Bei checkmaild bin ich schon so weit, daß neu eingegangene E-Mails am Samsung-TV mit /mod/etc/maillog.cfg nach dieser Anleitung ebenfalls am TV angezeigt werden. Meine angepaßte maillog.cfg sieht so aus:
Code:
#!/bin/sh
# neue Email empfangen
if [ "$1" = "0" ];
then
echo "Am $6 um $7 Uhr schrieb $8: $9" | callaction samsung_text 192.168.178.9   [SIZE=1]#Am $Datum um $Uhrzeit schrieb $Absender: $Betreff | an Samsung-VT schicken[/SIZE]
fi
Nun würde ich sehr gern den Inhalt der eingegangenen E-Mail am TV anzeigen lassen. Das klappt aber nicht, denn in den Anpassungen/Erweiterungen konnte ich keinen Hinweis zum E-Mail-Text finden. Wird der E-Mail-Text an anderer Stelle gespeichert oder noch gar nicht? Ich hab bisher nix dazu gefunden, weder auf der Box noch im Wiki. Wo kann ich noch suchen, damit ich erfahren kann, ob und wie ich den E-Mail-Text "irgendwo und wie" zwischenspeichere und ihn dann an den TV schicke?

Ich bin leider noch nicht fündig geworden und dachte mir, vllt. kann mir jemand einen Hinweis geben, der mich auf die richtige Fährte bringt. :)

Ich würde mich sehr freuen, wenn Ihr mir bitte etwas unter die Arme greifen könntet. Danke. :)

Edit:

Ich schreibe mal ein freudiges [gelöst] vor diesen Thread, denn dank der tollen Hilfe, die mir gegeben wurde, bin ich mit meinem Ergebnis schon sehr zufrieden. In # 72 sind die Dateien, die ich dafür erstellt habe, angehangen. Sie befinden sich noch im Pfad "/mod/etc/" direkt auf der gefreetzten FB 7270. Nach einem Neustart der FB müssen die drei Dateien aber wieder dorthinkopiert werden. Ich hab bisher noch keine Lösung, wie ich es anders machen könnte, dafür gefunden. "ripMIME", welches in 54.04.88freetz-devel-6629 integriert ist, hab ich auf den USB-Stick ausgelagert.

noch ein Edit:

Ich hab nun herausgefunden, wie ich das machen muß, damit nach einem Neustart der FB die "maillog.cfg", die "maillog.sed" sowie die "mailloghead.sed" wieder im Ordner /mod/etc/ vorhanden sind. Dafür hab ich in der Freetz-Oberfläche unter Freetz - .rc-custom folgende Sachen eingetragen und mit "Übernehmen" bestätigt:
cat /var/media/ftp/Ut165-USB2FlashStorage-01/external/maillog.cfg > /mod/etc/maillog.cfg
cat /var/media/ftp/Ut165-USB2FlashStorage-01/external/maillog.sed > /mod/etc/maillog.sed
cat /var/media/ftp/Ut165-USB2FlashStorage-01/external/mailloghead.sed > /mod/etc/mailloghead.sed
Dadurch werden die drei Dateien von meinem USB-Stick zurück in den Ordner /mod/etc/ kopiert, sobald der Bootprozeß der FB beendet ist. :D
 
Zuletzt bearbeitet:
Hallo Bianca,

checkmaild ruft nur die Kopfzeilen der Emails ab nicht jedoch den Inhalt. Derzeit ist es damit also nicht möglich deren Inhalt anzuzeigen.

Gruß
Oliver
 
Hallo Oliver,

vielen Dank für Deine Antwort. :)

Hmmm, ich hab es befürchtet, daß mit checkmaild keine Email-Inhalte abgerufen werden können (im Wiki gibt es ja nur die Variablen von $1 bis $9 ohne Mail-Inhalt). Ich hab schon kräftig gesucht, hab aber leider noch keine richtige Lösung für mich als Anfänger gefunden. Ich hab inzwischen herausgefunden, daß und wie ich eine pop3-Mail mit Inhalt mit NC oder mit Telnet in der Freetz-FB-Box mithilfe der Konsole abrufen kann (das sieht dann so aus, wie wenn man sich unter Windows den Quelltext einer E-Mail anschaut - noch etwas chaotisch, aber naja). Ich hab aber noch nicht herausbekommen, wie ich den Inhalt der eingegangene Mail auf einem USB-Stick zwischenspeichern könnte, um ihn dann am TV anzuzeigen. Ich hab leider noch keine Vorstellung davon, wie das Script aussehen müßte, damit das alles funktionieren könnte... Ist für mich noch recht schwierig, mich da reinzufuchsen.

Schade eigentlich - jetzt, wo es die geniale Möglichkeit gibt, neue Mails am TV signalisieren zu können und nicht nur an der FB mithilfe der LED's oder so. Da dachte ich, daß es noch genialer wäre, wenn dann die Mails auch gleich am TV gelesen werden könnten - wenn man möchte. ;)

Bodega hatte einmal eine Lösung für den E-Mail-Inhalt gefunden - aber das ist wohl damals irgendwie im Sande verlaufen... :gruebel:
 
Nachdem ich mir nochmal alles angeschaut habe müsste es doch mit dem Body funktionieren. Wenn du im Webinterface die Option "Header und Body empfangen" auswählst, dann sollte der Mailinhalt in der maillog.cfg mit "cat /var/tmp/maillog.body" ausgegeben werden.

Gruß
Oliver
 
Danke für Deine Hilfe, Oliver. :)

Ich hab zunächst die maillog.cfg unter /mod/etc/ folgendermaßen abgeändert:
Code:
## Rudi-Editor
## Bitte umgebende Zeilen NICHT löschen ('cat > ...', 'RUDI_EOF')
cat > /mod/etc/maillog.cfg << 'RUDI_EOF'
#!/bin/sh
# neue Email empfangen
if [ "$1" = "0" ];
then
     echo "Am $6 um $7 Uhr schrieb $8: $9" cat /var/tmp/maillog.body | callaction samsung_text 192.168.178.9
fi
RUDI_EOF
und überprüft, ob ich einen Haken bei "Header und Body empfangen" gesetzt habe. Anschließend hab ich checkmaild neugestartet und mir eine Testmail geschickt - erfolglos. Nun hab ich geschaut, ob ich unter /var/tmp/ überhaupt eine Datei namens maillog.body habe. Leider ist dort keine. Ich hab sie mit touch maillog.body unter /var/tmp/ angelegt und wieder eine Testmail geschickt. Auch wieder ohne Erfolg. Hab ich "cat /var/tmp/maillog.body" richtig in die maillog.cfg eingefügt?

Edit:

Wenn ich mir unter /etc/default.checkmaild die maillog.cfg mit cat anschaue,
Code:
#!/bin/sh
#####################################################################
# CheckMailD-Event ($1=0): new mail                                 #
#####################################################################
if [ "$1" = "0" ]
then
        echo "-------------------------------------------------------"
        echo "New Mail:"
        echo "-------------------------------------------------------"
        echo "Mail-Header:"
        cat /var/tmp/maillog.head
        echo "-------------------------------------------------------"
        echo "Mail-Body:"
        [B][COLOR=blue]cat /var/tmp/maillog.body[/COLOR][/B]
        echo "-------------------------------------------------------"
        echo "Account:       $4"
        echo "UID:           $5"
        echo "Date:          $6"
        echo "Time:          $7"
        echo "From:          $8"
        echo "Subject:       $9"
        echo "-------------------------------------------------------"
        echo "All mail(s):   $2"
        echo "New mail(s):   $3"
        echo "-------------------------------------------------------"
        sleep 1
fi
#####################################################################
# CheckMailD-Event ($1=1): mail-status (every interval)             #
#####################################################################
if [ "$1" = "1" ]
then
        echo "------------------------------------------------------"
        echo "Mail Status:"
        echo "------------------------------------------------------"
        echo "All mail(s):   $2"
        echo "New mail(s):   $3"
        echo "------------------------------------------------------"
        sleep 1
fi
taucht dieses "cat /var/tmp/maillog.body" auf. Ich dachte, das war ein Überbleibsel aus den Anfängen von checkmaild und hat heute keine Funktion mehr. :) Die Datei "/var/tmp/maillog.head" ist auch nicht da. :gruebel:
 
Zuletzt bearbeitet:
Code:
#!/bin/sh

[ "$1" != "0" ] && exit 0 # keine neue Email empfangen

echo "Am $6 um $7 Uhr schrieb $8: $9"  | callaction samsung_text 192.168.178.9
# sleep 5 # falls die erste Meldung zu schnell überschrieben wird
cat /var/tmp/maillog.body | callaction samsung_text 192.168.178.9
Gruß
Oliver
 
Hallo Oliver,

ich danke Dir für den Code. :) Ich habe ihn in die /mod/etc/maillog.cfg eingefügt und wieder chmod 755 /mod/etc/maillog.cfg ausgeführt. Die Datei /var/tmp/maillog.body ist noch von Gestern 20:30 Uhr angelegt.

Nun hab ich checkmaild lieber nochmal neu gestartet und mir eine Testmail geschickt. Am TV werden mir nun zwei Mails signalisiert. Die erste ist ganz leer und die zweite enthält wieder das Übliche (Datum, Absender, Betreff), wie vor der Änderung auch. Nun hab ich cat maillog.body in putty ausgeführt - die Datei ist leer. So sieht die maillog.body in /var/tmp/ aus:
Code:
-rwxr-xr-x    1 root     root            0 Feb 16 20:30 maillog.body
Stimmen denn die Berechtigungen? Die hab ich von chmod 755 /mod/etc/maillog.cfg übernommen.

Edit:

Ich habe gerade einmal über Rudi-Shell etwas in die Datei /var/tmp/maillog.body hineingeschrieben und mir wieder testweise eine mail geschickt. Am TV werden wieder 2 Mails angezeigt - siehe da, der Inhalt von maillog.body steht nun artig in der ersten und in der zweiten wieder die normale Benachrichtigung, wie sie sonst war.
 
Zuletzt bearbeitet:
Die maillog.body sollte nur während der Ausfürhung der maillog.cfg vorhanden sein. Wenn die danach immer noch in /var/tmp ist, dann stimmt was mit dem Programm nicht.

Gruß
Oliver
 
Ah, OK, ich lösche die maillog.body wieder in /var/tmp, denn die war ja noch von Gestern angelegt und probiere es noch einmal. Ich melde mich dann gleich wieder... :)

Edit:

Hmmm, ich hab die maillog.body in /var/tmp gelöscht und checkmaild neu gestartet. In putty sehe ich die maillog.body nicht mehr. Dann hab ich mir wieder eine Testmail geschickt. Jetzt ist es wieder so, daß ich zwei Benachrichtigungen am TV erhalte. Die erste ist ganz leer und die zweite ist wie gahabt (Datum, Absender und Betreff).
 
Zuletzt bearbeitet:
Dankeschön! :)

Dankeschön Oliver! :)

Ich probiere das heute noch aus und melde mich dann wieder. Zunächst muß ich erst einmal herausfinden, ob und wie ich diese neue checkmaild-Version ins "54.04.80 freetz-1.1-stable" eingebaut bekomme. Ansonsten muß ich mich erst noch mit dem Trunk befassen... :)
 
Ist nicht so schwer:
Code:
make CHECKMAILD_VERSION:=0.4.5
Gruß
Oliver

oder
Code:
Index: make/checkmaild/checkmaild.mk
===================================================================
--- make/checkmaild/checkmaild.mk	(revision 6575)
+++ make/checkmaild/checkmaild.mk	(working copy)
@@ -1,4 +1,4 @@
-$(call PKG_INIT_BIN, 0.4.4)
+$(call PKG_INIT_BIN, 0.4.5)
 $(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.bz2
 $(PKG)_SITE:=http://freetz.magenbrot.net
 $(PKG)_BINARY:=$($(PKG)_DIR)/checkmaild
 
Ah, danke, dann probiere ich das gleich einmal aus... :D

Edit:

Hallo Oliver,

ich hab jetzt die neue checkmaild-Version 0.4.5 ins "54.04.80 freetz-1.1-stable" gebaut.
Code:
[CheckMailD v0.4.5
----------------------------------------------------------------------------
usage: checkmaild [options]
-daemon start in daemon-mode (with syslog)
-single start in single-mode (without syslog)
-nodelay no start delay
-path [PATH] config/data-path (/var/tmp/) 
-help, -? this help
Es scheint aber immer nich nicht zu wollen. Meine maillog.cfg sieht noch so aus:
Code:
## Rudi-Editor## Bitte umgebende Zeilen NICHT löschen 
('cat > ...', 'RUDI_EOF')
cat > /mod/etc/maillog.cfg << 
'RUDI_EOF'
#!/bin/sh
[ "$1" != "0" ] && exit 0 # keine neue Email empfangen
echo "Am $6 um $7 Uhr schrieb $8: $9" | callaction samsung_text 192.168.178.9
sleep 5 # falls die erste Meldung zu schnell überschrieben wird
cat /var/tmp/maillog.body | callaction samsung_text 192.168.178.9
RUDI_EOF
Es ist wieder so, daß ich beim Eingang einer neuen Mail am TV 2 Benachrichtigungen bekomme. Dabei ist in der ersten Nachricht nüscht zu sehen, also ganz leer und in der zweiten ist das Datum, Uhrzeit, Absender und Betreff drinnen. "Header und Body empfangen" hab ich angehakt und checkmaild neu gestartet.

Die /var/tmp/maillog.body vernichtet sich artig, nachdem eine Mail einging und sie eigentlich aufgerufen wurde (Das hab ich erfolgreich getestet. Ich hab sie zunächst testweise per Hand angelegt und dann war sie nach Maileingang wieder artig weg). Mir scheint, als wenn nun noch fehlt, das die maillog.body "irgendwie" beschrieben mit dem Inhalt der Mail wird. :gruebel:
 
Zuletzt bearbeitet:
Hm, ich versteh nicht so ganz warum die leere Meldung trotz des "sleep 5" vor der mit Datum, Uhrzeit usw. kommt. Da ich kein Samsung Fernseher habe wird es auch schwer da weiter zu helfen...

Wenn du checkmaild auf der Kommandozeile startest, dann kannst du zuschauen was es treibt:
Code:
checkmaild -single -nodelay -path /mod/etc/

Gruß
Oliver
 
Hallo Oliver,

ich hab einmal auf der Kommandozeile geschaut, was dabei herauskommt:
Code:
/var/mod/root # checkmaild -single -nodelay -path /mod/etc/
CheckMailD <check 2 Account(s) every 1min without Logging>
CheckMailD <Account 0 = 000(033)/033 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Account 1 = 000(013)/013 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Status-Event:  /mod/etc/maillog.cfg (46)>
CheckMailD <Account 0 = 000(033)/033 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Account 1 = 000(013)/013 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Status-Event:  /mod/etc/maillog.cfg (46)>
CheckMailD <Account 0 = 000(033)/033 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Account 1 = 000(014)/014 Mail(s) for [EMAIL="[email protected]"][email protected][/EMAIL]>
CheckMailD <Status-Event:  /mod/etc/maillog.cfg (47)>
Ich sehe, daß die beiden E-Mail-Konten jede Minute abgefragt werden und würde sagen: Das funktioniert sehr gut. :)

Ich reime mir das so zusammen: Zunächst wird geschaut, ob es eine neue E-Mail gibt, wenn ja, wird sie geholt mit Datum, Uhrzeit, Absender und Betreff und am TV angezeigt.
Code:
echo "Am $6 um $7 Uhr schrieb $8: $9"  | callaction samsung_text 192.168.178.9
Dann wird 5 Sekunden gewartet
Code:
sleep 5 # falls die erste Meldung zu schnell überschrieben wird
und es soll der Mail-Inhalt geholt. Weil es dafür wahrscheinlich noch keine Routine/Script gibt, bleibt diese Nachricht leer und wird ebenfalls am TV angezeigt, also oben auf den "Stapel".
Code:
cat /var/tmp/maillog.body | callaction samsung_text 192.168.178.9
Die erste Nachricht liegt unten und die zweite oben drauf. Wird am TV die Nachricht gezeigt, sehe ich zuerst die von oben, also die leere Nachricht, dann die nächste mit Datum, Uhrzeit, Absender und Betreff. Ob das wirklich so ist, weiß ich nicht, aber so hab ich das beobachtet. :)

Ich hab die Reihenfolge in der maillog.cfg einmal umgedreht - jetzt kommt am TV zuerst die Nachricht mit Datum, Uhrzeit, Absender und Betreff. Die leere Nachricht kommt nun als zweites. :)
Code:
cat /var/tmp/maillog.body | callaction samsung_text 192.168.178.9
sleep 5 # falls die erste Meldung zu schnell überschrieben wird
echo "Am $6 um $7 Uhr schrieb $8: $9"  | callaction samsung_text 192.168.178.9
 
Dann kannst du das "sleep 5" auch rausnehmen. Bekommst du die Nachrichten nicht sofort angezeigt? Ich kenne das nur von der dbox2 und dem callmonitor...

Testweise könntest du das "cat /var/tmp/maillog.body" mal durch "ls -l /var/tmp/maillog.body" ersetzen. Was bekommst du angezeigt?

Gruß
Oliver
 
Doch, es kommt relativ sofort mit den 5 Zeiteinheiten Versatz. Ich hab "sleep 5" nun herausgenommen.

Hab nun mal "ls -l /var/tmp/maillog.body" in die maillog.cfg eingetragen. Die Nachricht kommt an und der Inhalt in der sonst leeren TV-Nachricht ist
Code:
-rw-r--[COLOR=red]r[/COLOR]-- 1 root root 0 Feb 23 11:27 /var/tmp/maillog.body

Edit:

Ich hab bemerkt, daß die Nachricht ein r zuviel hatte. So heißt es richtig:
Code:
-rw-r--[COLOR=red]-[/COLOR]-- 1 root root 0 Feb 23 11:27 /var/tmp/maillog.body
Sorry! :oops:
 
Zuletzt bearbeitet:
Du schickst dir aber keine leeren Mails oder? :mrgreen:

Die Datei wird also erstellt. Aber es steht nichts drin!?

Gruß
Oliver
 
:lach: Neee, ich schicke Testmails mit Testtext drinnen. Manchmal leite ich auch einfach eine E-Mail von einer Adresse an die andere Adresse weiter - aber leere Mails schicke ich mir niemals nicht. :mrgreen: Die normalen Mails kommen auch noch an und dort ist ebenfalls Text drinnen.

Ja, das befürchte ich auch, daß die Datei artig erstellt wird, aber leider nichts drinnen ist. Vielleicht habt ihr damals die Routine für den Mail-Inhalt einfach herausgenommen, weil er ja zum einfachen Anzeigen per LED's an der FB oder per Telefonwarnung nicht nötig und dafür überflüssig war? :noidea:
 
Zuletzt bearbeitet:
Hallo,

Ich lese hier einmal interessiert mit. Könnten es Schreibrechte beim Erstellen der Datei sein? :noidea:
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.