NEWS
Test Adapter ioBroker.imap latest/stable
Test Adapter ioBroker.imap latest/stable
-
@magnus-0 Ich überwache 4 eMail Konten und bin mal alle durchgegangen. Leider ist das wohl eine Einstellungssache deines Provider.
Bei arcor geht es auch nicht. Welche Funktion aktiv sind kannst du im Ordner .infos einsehen.
imap.0.xxx_arcor_de.infos.all_capability[ "IMAP4REV1", "CHILDREN", "UNSELECT", "XLIST", "ID", "MOVE", "NAMESPACE", "UIDPLUS" ]Mein eigener Server:
[ "IMAP4REV1", "LITERAL+", "SASL-IR", "LOGIN-REFERRALS", "ID", "ENABLE", "IDLE", "SORT", "SORT=DISPLAY", "THREAD=REFERENCES", "THREAD=REFS", "THREAD=ORDEREDSUBJECT", "MULTIAPPEND", "URL-PARTIAL", "CATENATE", "UNSELECT", "CHILDREN", "NAMESPACE", "UIDPLUS", "LIST-EXTENDED", "I18NLEVEL=1", "CONDSTORE", "QRESYNC", "ESEARCH", "ESORT", "SEARCHRES", "WITHIN", "CONTEXT=SEARCH", "LIST-STATUS", "BINARY", "MOVE", "SNIPPET=FUZZY", "QUOTA" ]Wofür diese Einstellungen stehen habe ich in meiner Anleitung hinterlegt (glaube ich).
Dann muss du nach Änderungen den Datenpunkt "imap.0.xxx_luckyskills_de.remote.reload_emails" auf true setzen.edit: .info geändert in .infos
Gruß//Lucky
Web.de scheint Folgendes zu können:
["IMAP4REV1", "CHILDREN", "ENABLE", "ID", "IDLE", "LIST-EXTENDED", "LIST-STATUS", "LITERAL-", "MOVE", "NAMESPACE", "QUOTA", "SASL-IR", "SORT", "SPECIAL-USE", "THREAD=ORDEREDSUBJECT", "UIDPLUS", "UNSELECT", "WITHIN", "APPENDLIMIT=27962027"]Weißt du welche Eigenschaft das Postfach können muss für die Funktion?
-
Ich habe da mal noch eine andere Frage:
In den Adaptereinstellungen gibt es ja die Einstellung "tls-Option".
Laut Einstellung ist das standardmäßig "{"rejectUnauthorized": false}". Rein sicherheitstechnisch gesehen ist das ja nicht so gut. Dann ist man offen für MITM-Angriffe.
Ich habe das bei mir testweise mal auf ""{"rejectUnauthorized": true}" gesetzt. Jedoch erscheint dann im Log folgender Fehler:

Der Adapter geht also davon aus, dass "localhost." der Servername des IMAP-Servers ist (so klingt es zumindest laut Log). Kann es sein, dass das vielleicht ausversehen im Adapter fest hinterlegt ist und noch nicht dynamisch der eingetragene IMAP-Servername "Host" (siehe Adaptereinstellungen) eingesetzt wird?
-
Ich habe da mal noch eine andere Frage:
In den Adaptereinstellungen gibt es ja die Einstellung "tls-Option".
Laut Einstellung ist das standardmäßig "{"rejectUnauthorized": false}". Rein sicherheitstechnisch gesehen ist das ja nicht so gut. Dann ist man offen für MITM-Angriffe.
Ich habe das bei mir testweise mal auf ""{"rejectUnauthorized": true}" gesetzt. Jedoch erscheint dann im Log folgender Fehler:

Der Adapter geht also davon aus, dass "localhost." der Servername des IMAP-Servers ist (so klingt es zumindest laut Log). Kann es sein, dass das vielleicht ausversehen im Adapter fest hinterlegt ist und noch nicht dynamisch der eingetragene IMAP-Servername "Host" (siehe Adaptereinstellungen) eingesetzt wird?
@magnus-0 Es muss idle verfügbar sein. Schau mal ins Log, ob da was auffälliges steht...
Es ist dir überlassen wie du versuchst die Verbindung aufzubauen.
Du kannst ja statt{"rejectUnauthorized": true}dein Zertifikat verwenden.
{ ca: [ <dein PEM> ]}Gruß//Lucky
-
Hallo,
bekomme ich es über diesen Adapter hin trotz 2FA von einem GMX oder GMAIL Account Mails zu versenden?
Danke
-
Hallo,
bekomme ich es über diesen Adapter hin trotz 2FA von einem GMX oder GMAIL Account Mails zu versenden?
Danke
@warhammer73 Nein, dieser Adapter überwacht deine eMails kann aber keine versenden.
Gruß//Lucky
-
Danke für den Tip, aber der kann leider nur Mails empfangen und nicht senden.
-
Vielen Dank für den Adapter. Ich habe noch eine Frage:
Wenn neue Emails kommen, wird die aktuellste ja bei Objekte unter imap.0.adresse_gmail_com.email.email_01 angezeigt. Ist es möglich mit einem Blockly bei einem bestimmten Betreff, egal welcher Absender gleich die Flag "Seen" zu setzen und wie würde das funktionieren?
Ich habe jetzt mehrmals alles hoch unter runter gelesen und getestet, komme aber nicht auf eine Lösung.Vielen Dank!
Grüße Micha
-
Vielen Dank für den Adapter. Ich habe noch eine Frage:
Wenn neue Emails kommen, wird die aktuellste ja bei Objekte unter imap.0.adresse_gmail_com.email.email_01 angezeigt. Ist es möglich mit einem Blockly bei einem bestimmten Betreff, egal welcher Absender gleich die Flag "Seen" zu setzen und wie würde das funktionieren?
Ich habe jetzt mehrmals alles hoch unter runter gelesen und getestet, komme aber nicht auf eine Lösung.Vielen Dank!
Grüße Micha
@michael-d Hast du mehrere Adressen in der Überwachung oder nur eine?
Edit: Hier mal ein Beispiel. Es gibt viele Möglichkeiten.
common.Skript_102.xml -
@michael-d Hast du mehrere Adressen in der Überwachung oder nur eine?
Edit: Hier mal ein Beispiel. Es gibt viele Möglichkeiten.
common.Skript_102.xml@lucky_esa ich habe nur eine Adresse konfiguriert. Ich möchte auch nur die neueste Email mit einer Flag bearbeiten, sprich immer die neueste, wenn sie einem bestimmten Betreff hat.
Ich schaue es mir nachher mal an. Danke schon mal.
Edit: In deinen Beispiel: Wo kann ich angeben, welchen Betreff die E-Mail haben muss, dass er die Flag setzt und wo muss ich die Flag angeben? Sorry für die Fragen, aber ich kapier es gerade nicht.
Ecit: Also die Flag "seen" wird ja bereits in deinem Beispiel in der JavaScript Funktion gesetzt. Was ich noch nicht herausgefunden habe, ist der Betreff. Wo kann ich diesen eingeben, falls der übereinstimmt, dass nur dann die Flag gesetzt wird? Wenn ich das bei der Wenn-Dann Funktion auf Subject stelle, raucht mir der IMAP Adapter ab
-
@lucky_esa ich habe nur eine Adresse konfiguriert. Ich möchte auch nur die neueste Email mit einer Flag bearbeiten, sprich immer die neueste, wenn sie einem bestimmten Betreff hat.
Ich schaue es mir nachher mal an. Danke schon mal.
Edit: In deinen Beispiel: Wo kann ich angeben, welchen Betreff die E-Mail haben muss, dass er die Flag setzt und wo muss ich die Flag angeben? Sorry für die Fragen, aber ich kapier es gerade nicht.
Ecit: Also die Flag "seen" wird ja bereits in deinem Beispiel in der JavaScript Funktion gesetzt. Was ich noch nicht herausgefunden habe, ist der Betreff. Wo kann ich diesen eingeben, falls der übereinstimmt, dass nur dann die Flag gesetzt wird? Wenn ich das bei der Wenn-Dann Funktion auf Subject stelle, raucht mir der IMAP Adapter ab
@michael-d Die Buchstaben abc durch den Suchbegriff ersetzen und meine eMail duch deine ersetzen.
-
@michael-d Die Buchstaben abc durch den Suchbegriff ersetzen und meine eMail duch deine ersetzen.
@lucky_esa Vielen Dank, es funktioniert! Genau wie ich es brauche!
-
Hallo,
bin mir nicht ganz sicher, ob ich hier richtig bin...
Aber ich habe das kleine Problem, dass der Adapter bei Abrufen einer Email folgenden Fehler auslöst:
Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
unhandled promise rejection: Cannot read properties of undefined (reading 'seqno')
TypeError: Cannot read properties of undefined (reading 'seqno') at Imap.updatejson (/opt/iobroker/node_modules/iobroker.imap/main.js:638:49) at EventEmitter.<anonymous> (/opt/iobroker/node_modules/iobroker.imap/lib/imap_event.js:600:30) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Cannot read properties of undefined (reading 'seqno')Danach wird er neu gestartet und wartet auf den Eingang einer neuen Mail
-
Hallo,
bin mir nicht ganz sicher, ob ich hier richtig bin...
Aber ich habe das kleine Problem, dass der Adapter bei Abrufen einer Email folgenden Fehler auslöst:
Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
unhandled promise rejection: Cannot read properties of undefined (reading 'seqno')
TypeError: Cannot read properties of undefined (reading 'seqno') at Imap.updatejson (/opt/iobroker/node_modules/iobroker.imap/main.js:638:49) at EventEmitter.<anonymous> (/opt/iobroker/node_modules/iobroker.imap/lib/imap_event.js:600:30) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Cannot read properties of undefined (reading 'seqno')Danach wird er neu gestartet und wartet auf den Eingang einer neuen Mail
@meinhardrisch
Sorry, nehme alles zurück... es fehlte wohl das Symbol ...
-
@meinhardrisch
Sorry, nehme alles zurück... es fehlte wohl das Symbol ...
@meinhardrisch sagte in Test Adapter ioBroker.imap latest/stable:
@meinhardrisch
Sorry, nehme alles zurück... es fehlte wohl das Symbol ...
Dann ist ja alles gut. Du bist hier auch richtig. Auch wenn du was vergessen hast, darf der Adapter nicht crashen sondern sollte mit Fehleingaben umgehen können.
Was genau hast du gemacht?Gruß//Lucky
-
Aktuelle Test Version 0.3.0 Veröffentlichungsdatum 26.02.2023 Github Link https://github.com/Lucky-ESA/ioBroker.imap Status Nun als Stable 0.1.2 verfügbar Hallo zusammen,
habe mal einen IMAP Adapter gschrieben. Es können beliebig viele IMAP Verbindungen anlegen und überwacht werden.
Updates oder neue Mails werden automatisch erkannt und die Infos in den Datenpunkten geschrieben.Hier nun die Beschreibung:
Einstellung Instanz- Aktiv: IMAP Verbindung aktivieren
- Host: Bsp:. imap.gmail.com
- Posteingang: Standard INBOX
- Port: Standard ist 993
- Benutzername: Dein Loginname
- Passwort: Dein Passwort
- max.: Maximale Anzahl an Mails die als Datenpunkte angelegt werden (max. 99)
- max. HTML: Maximale Anzahl an Mails die als HTML ausgegeben werden (max. 99)
- TLS: TLS Verschlüsselung. Sollte immer true haben
- Flaggen: Hier sind die Flags
- Symbol auswählen: Hier erst über "Symbole Erstellen" ein ICON hochladen. Wird als Folder ICON verwendet
- Token: Bsp.: Für Outlook. Ob das funktioniert kann ich nicht sagen
- tls-Option: Bsp.: {"rejectUnauthorized": false} oder leer lassen {}
- Auto-TLS: Hier lesen
Datenpunkte
- imap.0.xx.email: Hier werden die Mails angelegt wie in der Instanz eigestellt wurde. Habt ihr nur 7 Mails und
max. 10 eingetragen, bleiben die letzten 3 leer. Habt ihr 10 Mails und löscht 3, werden die letzten 3 Mails nicht geleert. - imap.0.xx.remote.html: Hier könnt ihr euren CSS-Style anpassen
- imap.0.xx.remote.criteria: Neue Suchkreterium. Bleibt auch bei einem Neustart aktiv (auch als Blockly möglich)
- imap.0.xx.remote.reload_emails: Änderungen in HTML werden erst bei einer Aktualisierung übernommen. Hiermit kannst du den Code sofort übernehmen.
- imap.0.xx.remote.search_start: show_mails und criteria anwenden
- imap.0.xx.remote.show_mails: Die Anzahl in der Instanz Konfig ändern (auch als Blockly möglich)
- imap.0.xx.html: HTML Code für VIS
- imap.0.xx.last_activity: Letzte Aktivität (Aktualisierung/Neue Post)
- imap.0.xx.last_activity_json: Bsp.: {"flags": ["\Seen"]} für als gelesen markiert
oder {"flags": []} für neue Post. - imap.0.xx.last_activity_timestamp: Letzte Aktivität als Timestamp
- imap.0.xx.online: Mit IMAP verbunden = true
- imap.0.xx.quality: Qualität der Datenpunkte (automatische Prüfung alle 24h)
- imap.0.xx.total: Anzahl aller Mails in deiner Inbox.
- imap.0.xx.remote.change_folder: Hier könnt ihr eure Folder auswählen. Es werden dann alle Daten mit dem Inhalt dieses Folder gefühlt (Mail01, json_table etc). Allerdings wird dann auch nur diese Auswahl überwacht.
- imap.0.xx.active_inbox: Zeigt euch welcher Folder aktiv ist und überwacht wird
- imap.0.xx.total_unread: Anzahl ungelesene Mails im aktiven Folder
- imap.0.xx.total: Anzahl aller Mails im aktiven Folder
Blocklys
Der kleine Blockly steuert die o. g. Datenpunkte um die Suche zu ändern.
Mit dem großen können eigene Anfragen erstellt werden und ihr erhaltet einen Array mit JSON Elemente. ACHTUNG! Es kommen echt viele Daten daher nicht immer mit "debug output" arbeiten. Was möglich ist könnt ihr hier nachlesen.
Habe diesen Adapter für mich und meine Berdürfnisse geschrieben. Nun könnt ihr gerne Wünsche aussern die ich hinzufügen soll.outlook.office365.com 2Fach-Authentifizierung
Bekannte Issues
- Habe noch keine Idee die Mail Total zu aktualisieren - done
- Es wird auch ein Update durchgeführt, wenn Mails ausserhalb der max. liegen. Ihr habt max. 20 eingetragen und die Mail 22 wird als gelesen markiert, dann wird trotzdem ein Update gefahren. - done
Bitte den RAM Verbrauch kontrollieren. Bei 4 IMAP`s komme ich schon auf 120MB.
Viel Spaß beim testen und ich hoffe auch gute Ideen die man auch umsetzen kann

Gruß//Lucky
Klasse Adapter, hab ihn seit dem Testrelease stabil am laufen.
Jedoch nur sehr begrenzt, Betreff oder Nachricht triggert nur bestimmte Aktionen.Nun würde ich gerne Nachrichten löschen (nicht nur zu gelöscht verschieben) können.
Geht das? Am liebsten über blockly und die id der Mail. -
Klasse Adapter, hab ihn seit dem Testrelease stabil am laufen.
Jedoch nur sehr begrenzt, Betreff oder Nachricht triggert nur bestimmte Aktionen.Nun würde ich gerne Nachrichten löschen (nicht nur zu gelöscht verschieben) können.
Geht das? Am liebsten über blockly und die id der Mail.@david-g
Nun würde ich gerne Nachrichten löschen (nicht nur zu gelöscht verschieben) können.
Geht das? Am liebsten über blockly und die id der Mail.Es tut mir Leid aber über imap kann man keine Mails löschen. Du kannst diese nur in den Mülleimer verschieben.
Gruß//Lucky
-
Klasse Adapter, hab ihn seit dem Testrelease stabil am laufen.
Jedoch nur sehr begrenzt, Betreff oder Nachricht triggert nur bestimmte Aktionen.Nun würde ich gerne Nachrichten löschen (nicht nur zu gelöscht verschieben) können.
Geht das? Am liebsten über blockly und die id der Mail. -
@david-g Muss meine Aussage zurückziehen. Man könnte per Adapter einen neuen Ordner erstellen, dann dort die gewünschten Mails hineinschieben und dann den Ordner löschen.
Wäre das OK?
Gruß//Lucky
Wäre zumindest ein Workarround.
Mal schauen ob ich das im Blockly schaffe.Ist das evtl eine Möglichkeit die Funktion "Mail löschen" in den Adapter einzubauen die im Hintergrund so arbeitet?
-
Wäre zumindest ein Workarround.
Mal schauen ob ich das im Blockly schaffe.Ist das evtl eine Möglichkeit die Funktion "Mail löschen" in den Adapter einzubauen die im Hintergrund so arbeitet?
@david-g Du kannst gerne mal von GIT laden.
Zum anlegen oder löschen muss ZWINGEND die inbox + delimiter voran setzen. Siehe Beispiel im Objekt imap.0.xxx.remote.change_folder
"states": { "INBOX": "INBOX", "INBOX.Spam": "INBOX.Spam", "INBOX.Drafts": "INBOX.Drafts", "INBOX.Sent": "INBOX.Sent", "INBOX.Trash": "INBOX.Trash", }<inbox><delimiter>Spam
Um den Ordner imap anzulegen muss ich also INBOX.imap eintragen.
Neuen Ordner anlegen:
.remote.mailbox_folder_createDann mit move die gewünschten Mails dort einfügen und damit wieder löschen.
.remote.mailbox_folder_deleteGruß//Lucky
-
@david-g Du kannst gerne mal von GIT laden.
Zum anlegen oder löschen muss ZWINGEND die inbox + delimiter voran setzen. Siehe Beispiel im Objekt imap.0.xxx.remote.change_folder
"states": { "INBOX": "INBOX", "INBOX.Spam": "INBOX.Spam", "INBOX.Drafts": "INBOX.Drafts", "INBOX.Sent": "INBOX.Sent", "INBOX.Trash": "INBOX.Trash", }<inbox><delimiter>Spam
Um den Ordner imap anzulegen muss ich also INBOX.imap eintragen.
Neuen Ordner anlegen:
.remote.mailbox_folder_createDann mit move die gewünschten Mails dort einfügen und damit wieder löschen.
.remote.mailbox_folder_deleteGruß//Lucky
Cool,
das klappt wunderbar.
Ich habe ein Postfach was als "trigger" für manche Scripte dient von Geräten die Mails senden können und keine http Befehle senden können.
Jetzt kann man den Kram direkt löschen.