neues modul mailcheck

Begonnen von justme1968, 02 August 2013, 19:08:55

Vorheriges Thema - Nächstes Thema

justme1968

in diversen threads ist schon ein paar mal der wunsch aufgetaucht ein e-mail postfach mit fhem zu überwachen.

im attachment eine erste vermutlich noch mit vorsicht zu geniessende version:
define <device> mailcheck imap.xy.z.com x.y@z.com
also imap server und account. das imap password ist zur zeit noch im code in IMAP_password einzutragen.

der server muss imap idle unterstützen und es muss das Mail::IMAPClient perl modul installiert sein.

sobald eine neue mail im postfach ist wird ein reading vom typ 'Subject' erzeugt an das man ein entsprechendes notify hängen kann.

damit kann man z.b. auf geofencing mails reagieren.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

det.

Hallo Andre,
Alle Achtung! So schnell und funktioniert auf Anhieb ohne Fehlermeldung im LOG und Telnetsitzung. Hatte gestern Abend schnell mit cpan die fehlenden Module nachinstalliert, danach Freitag Abend Besuchsprogramm - und jetzt hast Du schon das Modul fertig...
Da bekomm ich schlechtes Gewissen wegen dem anstehenden Jahresurlaub, Tests meinerseits also erst wieder in 2 Wochen möglich.
Erst mal vielen Dank und ein Bild zum Beweis, das es geht:
(siehe Anhang / see attachement)
LG
det.

betateilchen

Funktioniert das Modul nur auf den Posteingang oder auf email-Eingang in jedem beliebigen Ordner der IMAP-Struktur?

edit: habs nun installiert und mit GMX getestet. Aber weiter als "Logged in" komme ich nicht - keine Anzeige von neuen emails. Mit gmail klappts.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

es sollte mit jedem postfach gehen. du musst aber die version verwenden die ich hier angehängt habe. du kannst dann das postfach als zusätzlichen parameter im define nach dem user angeben.

gmx kann ich leider nicht testen weil ich dort keinen imap fähigen account habe.

weiter als logged in geht auch nicht. danach würden dann die mails als reading/event kommen. aber eben nur bei neuen.


ich weiss das es mit gmail geht und mit icloud. und laut det. auch mit t-online. ich wollte es noch mit cyrus testen und dann auch ein paar debug ausgaben einbauen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Hallo Andre,

mit Deiner eben angehängten Version hat gerade eben auch GMX funktioniert - ich werde das aber noch weiter testen.

Bei den Ordnern reden wir wohl etwas aneinander vorbei. Mir geht es nicht darum, einen bestimmten Ordner zur Überwachung festzulegen, sondern mehrere (bis alle) Ordner der IMAP Struktur überwachen zu lassen. Ich habe ca. 120 aktive IMAP Ordner in einem Account, und die wenigstens emails kommen bei mir im INBOX an. Eine manuelle Angabe von Ordnern (wenn mehrere möglich sein sollten) ist eigentlich nicht praktikabel. Man müsste sich an der Abo-Liste orientieren, die auf dem Server hinterlegt ist.

Aber der Ansatz an sich ist schon ganz prima!

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

nein, zu früh gefreut: Das mit GMX war wohl eher ein Zufallstreffer. In den allermeisten Fällen funktioniert es nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich habe gerade gesehen das ich in der letzten version irgendwo noch ein blockieren drin habe. es geht nur die erste mail. ich weiss noch nicht genau woran es liegt.

mein hintergrund für das modul war z.b. die geofencing e-mails in fhem auszuwerten oder eine mail an fhem zu senden die dann z.b. irgendwo angezeigt wird.  deshalb bis jetzt genau eine mail box pro device.

ich muss mal schauen ob imap idle auch mit mehr als einem folder funktioniert. idle ist deshalb wichtig weil ich auf keinen fall pollen will.

was ich auch noch nicht überschauen kann ist ob es prinzipiell funktioniert ein postfach zu überwachen das gleichzeitig noch von anderen clients überwacht wird. ich weiss das normale mailclients damit schon probleme haben und es zu den seltsamsten effekten kommt.

ansonsten baue ich gerade ein das man sich z.b. die folder auf dem server auflisten kann.

und nicht vergessen: das war ein schnellschuss innerhalb einer stunde um zu sehen ob es prinzipiell funktioniert das ohne blockigcall und fork mit in der fhem event loop zu machen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

det.

Hallo Andre,
zumindest bei meinem T-Online Postfach funktioniert die Überwachung durch mehrere iDevice, Outlook und FHEM prima. Ich nutze noch deine erste Version. MMn wäre es ein guter Plan zu definieren, zu was das Modul dienen soll - z.B. Geofencing - Presence - zur Überbrückung der Zeit, bis WLAN + Bluetooth gemerkt haben das man daheim ist - oder was schalten bei Eingang einer Mail mit bestimmten Subjekt.
Wie immer wieder hier im Forum bewiesen, lässt sich im Gegensatz dazu die Funktionalität einzelner Module auch so aufbauschen, das es echt schwierig ist, sich da einzuarbeiten.
Ich würde es jedenfalls begrüßen, wenn Dich nicht der Ehrgeiz packt, in FHEM einen Clone von Outlook oder Thunderbird einzubauen.
LG
det.

justme1968

die beide sind so schlecht und haben so viele macken die baue ich nicht nach :)

es soll auf jeden fall ein kleiner aber funktionierender funktionsumfang bleiben. dazu gehört im momment das das modul dazu dienen soll mails 'an' fhem zu senden. nicht primär beliebig viele postfächer zu überwachen. wenn sich letzteres einfach mit erstem verbinden lässt gerne.

gruss
   andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 schrieb am Sa, 03 August 2013 13:07was ich auch noch nicht überschauen kann ist ob es prinzipiell funktioniert ein postfach zu überwachen das gleichzeitig noch von anderen clients überwacht wird.

das hat vorhin - einmalig - auch mit GMX funktioniert. Deshalb hatte ich zuerst den Verdacht, dass es nur funktioniert hat, WEIL ein anderer Client (auf dem gleichen Rechner wie fhem) läuft.

Ok - langsam verstehe ich den Hintergrund Deiner Entwicklung. Dann ist natürlich auch die Anforderung nach mehreren Foldern hier nicht richtig platziert.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich glaube das hängt tatsächlich davon ab welcher der beiden clients zuerst benachrichtigt wird. danach ist die mail für den anderen nicht mehr 'neu' sondern nur noch ungesehen.

nach meiner erfahrung (und ja ich weiss es gibt viele gegenbeispiele) macht es in der regel viele seltsame probleme wenn man mit mehr als einem mail client gleichzeitig auf das gleiche postfach zugreift. das reicht von mails die plötzlich doppelt da sind über mails die sich nicht löschen lassen bis hin zu mails die als zombies nach dem verschieben in ein postfach wieder neu auftauchen.

aber wie gesagt: wenn sich das reine prüfen nach neuer mail auf mehrere postfächer ausdehnen lässt dann gerne. vielleicht reicht es schon optional nicht nach neu zu schauen sondern eben nach ungelesen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ein kleines update:

- zusätzlicher parameter <folder> im define um einen anderen folder als die INBOX abzufragen
- diverse deadlocks beseitigt
- reconnect nach 29 minuten idle timout
- attribut delete_message eingbaut das die mail nach dem reading/event löscht. das sollte man natürlich nur dann verwenden wenn das postfach für nichts anderes ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ich habe das modul inzwischen ohne probleme über längere zeit laufen und auch reconnects funktionieren.

wenn sich noch der ein oder andere meldet bei dem es geht würde ich es mit diesem stand schon mal 'offiziell' einchecken.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Ralph

Moin, ich fürchte, ich stelle mich wieder zu doof an.

2 Fragen dazu:

Zitat von: justme1968 schrieb am Fr, 02 August 2013 19:08der server muss imap idle unterstützen
Ünterstützt GMAIL das ?


Zitat von: justme1968 schrieb am Fr, 02 August 2013 19:08und es muss das Mail::IMAPClient perl modul installiert sein.
Woher und Wie ?
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

justme1968

ja. gmail geht.

per 'cpan install MAIL::IMAPClient'

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968