NEWS
Emails empfangen.
-
Lieber Leute,
genau das habe ich gesucht. Ich werde mich bei Gelegenheit einmal da einlesen und probieren das auszulesen.
Hintergrund: Unsere Telenot- Alarmanlage will nicht nach draußen funken bzw. von extern abgefragt werden (außer der App).
Da mit kann ich dann den allgemeinen Alarmstatus (an/aus/intern an) abfragen und Automatisierungen anstoßen.
Beispielsweise- Stromzufuhr Fernseher aus bei Scharf-Schalten des Alarms. Außerdem Markise einfahren und Rolläden runter.
Nur so ein paar Gedanken. Da fehlt aber noch bisschen bei mir zu Hause, die ich vorher machen muss
-
GELÖST npm install mail-listener4 --save
Hallo,
ich habe das mail-listener2 skript auch laufen und durch "Subject" ergänzt. Wenn mir meine IPCam eine Email mit einem definierten Betreff schickt, soll ein Bild an Telegram gesendet werden.
Wenn so eine Email OHNE Anhang eintrifft, wird durch das Blockly ein Bild der IPCam verschickt.
Enthält diese Email mit dem Betreff aber einen Anhang, in dem Fall ein Bild von der IPCam, löst das Blockly nicht aus, es wird kein Bild per Telegram verschickt. Bei IMAP.Subject steht aber der richtige Betreff drinnen.Hat jemand eine Erklärung dafür ???
// Quelle Original: https://github.com/chirag04/mail-listener2 // Quelle Forum: https://forum.iobroker.net/topic/18501/emails-empfangen createState("IMAP.Email_Eingang"); createState("IMAP.EmailText"); createState("IMAP.Status"); createState("IMAP.Subject"); var MailListener = require("mail-listener2"); var mailListener = new MailListener({ username: "xxx@gmail.com", // hier Email Adresse eintragen password: "xxx", // hier Passwort eintragen host: "imap.gmail.com", //Mailserver port: 993, // imap port tls: true, connTimeout: 10000, // Default by node-imap authTimeout: 5000, // Default by node-imap, debug: null, // Or your custom function with only one incoming argument. Default: null tlsOptions: { rejectUnauthorized: false }, mailbox: "IPCam", // mailbox to monitor searchFilter: ["UNSEEN"], // the search filter being used after an IDLE notification has been retrieved markSeen: true, // all fetched email willbe marked as seen and not fetched next time fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`, mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib. attachments: true, // download attachments as they are encountered to the project directory attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments }); mailListener.start(); mailListener.on("server:connected", function(){console.warn("------- imapConnected");}); // IMAP-Status als Logausgabe und in Datenpunkt mailListener.on("server:connected", function(){setState("IMAP.Status",1);}); mailListener.on("server:disconnected", function(){console.error("------- imapDisconnected");}); mailListener.on("server:disconnected", function(){setState("IMAP.Status",0);}); // mailListener.on("error", function(err){console.error(err);}); // geändert auf Error im Log, mailListener.on("mail", function(mail, seqno, attributes){ log(mail.from[0].address); log(mail.from[0].name); log(mail.subject); log(mail.text); setState("IMAP.Email_Eingang",mail.from[0].address); setState("IMAP.EmailText",mail.text); setState("IMAP.Subject",mail.subject); }); mailListener.on("attachment", function(attachment){console.log(attachment.path);});
javascript.0 2019-11-09 13:13:41.187 info (180) Terminated (NO_ERROR): Without reason javascript.0 2019-11-09 13:13:41.185 info (180) terminating javascript.0 2019-11-09 13:13:41.177 info (180) script.js.email: javascript.0 2019-11-09 13:13:41.177 info (180) script.js.email: AlarmIPCamHof javascript.0 2019-11-09 13:13:41.177 info (180) script.js.email: Björn G javascript.0 2019-11-09 13:13:41.176 info (180) script.js.email: gaumnitz@gmail.com javascript.0 2019-11-09 13:13:41.130 info (180) Stop script script.js.IMAP_Verbindung javascript.0 2019-11-09 13:13:41.130 info (180) Stop script script.js.MDIPCamHof javascript.0 2019-11-09 13:13:41.128 info (180) Stop script script.js.alarm_Bild_Telegram javascript.0 2019-11-09 13:13:41.128 info (180) Stop script script.js.email javascript.0 2019-11-09 13:13:41.126 info (180) Stop script script.js.klingeltaster_Tor javascript.0 2019-11-09 13:13:41.124 info (180) Stop script script.js.Türklingel javascript.0 2019-11-09 13:13:41.123 info (180) Stop script script.js.4chTaste4 javascript.0 2019-11-09 13:13:41.098 info (180) Stop script script.js.VIS_Refresh javascript.0 2019-11-09 13:13:41.097 info (180) Stop script script.js.Anrufliste javascript.0 2019-11-09 13:13:41.096 error (180) TypeError: mime.extension is not a function at MailParser._generateFileName (C:\iobroker-data\SmartHome\node_modules\iobroker.javascript\node_modules\mail-listener2\node_modules\mailparser\l javascript.0 2019-11-09 13:13:41.095 error (180) uncaught exception: mime.extension is not a function javascript.0 2019-11-09 13:13:06.421 info (180) Stop script script.js.Bild_an_Telegram javascript.0 2019-11-09 13:12:57.415 info (180) script.js.Bild_an_Telegram: Webcam Bild per telegram verschickt javascript.0 2019-11-09 13:12:55.414 info (180) script.js.Bild_an_Telegram: Webcam Bild gespeichert javascript.0 2019-11-09 13:12:54.405 info (180) script.js.Bild_an_Telegram: registered 0 subscriptions and 0 schedules javascript.0 2019-11-09 13:12:54.373 info (180) Start javascript script.js.Bild_an_Telegram javascript.0 2019-11-09 13:12:54.331 info (180) script.js.email: javascript.0 2019-11-09 13:12:54.330 info (180) script.js.email: AlarmIPCamHof javascript.0 2019-11-09 13:12:54.330 info (180) script.js.email: Björn G javascript.0 2019-11-09 13:12:54.329 info (180) script.js.email: xxx@gmail.com javascript.0 2019-11-09 13:11:17.945 warn (180) script.js.email: ------- imapConnected
-
Hallo zusammen
Ich verwende auch dieses Script und es funktioniert auch, aber es wird immer nur die letzte Mail dargestellt.
Wie kann ich es lösen ,das mir abends wenn ich nach Hause komme, alle ungelesenen Mails angezeigt werden?
Wichtig wäre noch das die Mails auf dem Server als ungelesen bleiben.
Danke schon mal für eure Hilfe
Volker -
Halllo,
mein System läuft auf win10 mit win-installer von stabilo...
Nun wollte ich auch den mail-listener installieren.
Also cmd aufgerufen und
npm install mail-listener2
eingegeben.Dies führte dann zum Chaos !!!!!!!!!!!!!
Es kamen Fehler (die auf Seite 2 von skoarl auch genannt wurden):
npm WARN deprecated mailparser@0.4.9: Mailparser versions older than v2.3.0 are deprecated
npm WARN deprecated mimelib@0.3.1: This project is unmaintainedDann kamen auch: remove ...
Den Prozess habe ich dann abgebrochen.Es lief dann nichts mehr!
iob dienst unter win lässt sich nicht mehr starten.
iob lief gar nicht mehr.Musste dann alles deinstallieren, löschen, etc und alles neu aufbauen.
Jetzt läuft es wieder.
Dies nur so als Wanrung für andere, die dies probieren unter win.
Ich weiß nicht woran es gelegen hat.Aber jetzt läuft wieder alles.
mfg
-
Hallo,
Zur Einführung: ich versuche gerade meine Anwesenheitserkennung einzurichten, wobei ich gerne auf dem Weg nach Hause schon einen Trigger hätte (also bevor Bluetooth und WLAN sich connecten). Da die fertigen Lösungen alle Ihre Probleme haben, wollte ich vom Handy per "Tasker" eine Email an Iobroker schicken lassen, sobald ich in eine Zone einfahre / einlaufe.
Ist dieser Adapter hier die einzige Möglichkeit im Iobroker Emails zu "lesen"? Ich frage, weil der Adapter nicht ohne Github Installation vorhanden ist trotz des Alters und der Adapter auch scheinbar nicht weiter entwickelt wird
Grüße und Vielen Dank,
Max -
@M-A-X sagte in Emails empfangen.:
Hallo,
Zur Einführung: ich versuche gerade meine Anwesenheitserkennung einzurichten, wobei ich gerne auf dem Weg nach Hause schon einen Trigger hätte (also bevor Bluetooth und WLAN sich connecten). Da die fertigen Lösungen alle Ihre Probleme haben, wollte ich vom Handy per "Tasker" eine Email an Iobroker schicken lassen, sobald ich in eine Zone einfahre / einlaufe.
Ist dieser Adapter hier die einzige Möglichkeit im Iobroker Emails zu "lesen"? Ich frage, weil der Adapter nicht ohne Github Installation vorhanden ist trotz des Alters und der Adapter auch scheinbar nicht weiter entwickelt wird
Grüße und Vielen Dank,
MaxIch sende mir per tasker eine telegram nachricht an iob.
Und auf diese wird dann reagiert. -
@bahnuhr
Hey. Das hört sich interessant an. Auch wenn es OT ist, kannst du mir ne Anleitung per pn oder hier schicken? Ich finde in tasker kein Telegramm plug in. -
@M-A-X sagte in Emails empfangen.:
@bahnuhr
Hey. Das hört sich interessant an. Auch wenn es OT ist, kannst du mir ne Anleitung per pn oder hier schicken? Ich finde in tasker kein Telegramm plug in.Es gibt auch kein plug in.
Du kannst manuell in telegram ja etwas eintragen und dies erscheint ja dann in dem Datenpunkt
telegram.0.communicate.request
Und darauf kannst du dann reagieren.Oder per Tasker mit http request an ein iob Objekt (meine Angabe an telegram stimmt nicht so genau)
In Kurzform:- Ich habe ipv6 (ipv4 geht bei uns nicht mehr). Lösung per fib-box um vpn aufzubauen
- In fip.box konfiguration eine lokale IP anlegen (zu simple api mit 8087)
- Wenn vpn steht dann in Tasker einen http request, z.B. mit:
http://fip....:xxx/set/javascript.0.....GPS....
senden gps an die Variable in iob - Wenn sich diese dann ändert, dann per script darauf reagieren.
mfg
Dieter -
@bahnuhr
Danke Wenn man sich etwas einarbeitet, versteht man, was du gemacht hast Wollte es ohne VPN lösen, aber das scheint nicht zu gehen (außer Ports zu öffnen). -
Hallo
Babt ihr ne idee wie man aus dem subject in blockly "Alarm Einsatz 1234" nur "Alarm" auslesen kann? Da sich der Text hinter Alarm sich immer ändert, und ich möchte wenn die Email rein kommt, gucken ob Alarm im Subject ist, wenn ja dann soll er er dann ein Wert auf wahr setzten.Vielen Dank
Trino -
@ilovegym sagte in Emails empfangen.:
@Marty56 hmm da kommt bei mir nur ein [object Object], wenn ich aber die einzelnen variablen in einen State schreibe, gehts, also die Daten werden ausgelesen, aber nicht Email_Reception eingetragen.. ?
Ich brauchs nicht unbedingt, möchte aber wissen, warum das nicht geht..Hier mal mein Script, es wird unter javascript.0. ein Verzeichnis Email angelegt, wo alle Datenpunkte dann eingetragen werden ( so habe ich mehr übersicht )
var mailobj = {val: { from: "", topic: "", text: "", } }; createState("Email.Reception",mailobj); createState("Email.from_address"); createState("Email.from_name"); createState("Email.mail_subject"); createState("Email.mail_text"); schedule("*/2 * * * *", function (obj) { var MailListener = require("mail-listener2"); var mailListener = new MailListener({ username: "blabla.com", // hier Email Adresse eintragen password: "geheimespassword", // hier Passwort eintragen host: "imap.gmail.com", port: 993, // imap port tls: true, connTimeout: 10000, // Default by node-imap authTimeout: 5000, // Default by node-imap, debug: null, // Or your custom function with only one incoming argument. Default: null tlsOptions: { rejectUnauthorized: false }, mailbox: "INBOX", // mailbox to monitor searchFilter: ["UNSEEN"], // the search filter being used after an IDLE notification has been retrieved markSeen: true, // all fetched email willbe marked as seen and not fetched next time fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`, mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib. attachments: false, // download attachments as they are encountered to the project directory attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments }); mailListener.start(); mailListener.on("server:connected", function(){console.log("imapconconnected");}); mailListener.on("server:disconnected", function(){console.log("imapDisconnected");}); mailListener.on("error", function(err){console.log(err);}); mailListener.on("mail", function(mail, seqno, attributes){ log(mail.from[0].address); log(mail.from[0].name); log(mail.subject); log( mail.text); var mailobj = {val: { from: mail.from[0].name, topic: mail.subject, text: mail.text } }; setState("Email.Reception", mailobj); setState("Email.from_address", mail.from[0].address); setState("Email.from_name", mail.from[0].name); setState("Email.mail_subject", mail.subject); setState("Email.mail_text", mail.text); }); mailListener.on("attachment", function(attachment){console.log(attachment.path);}); setTimeout(function(){mailListener.stop();},20000); });
Moin, ist zwar schon etwas älter, aber läuft dies noch mit den aktuellen Paketen in IOBroker ?
Wenn ich dies richtig verstehe, dann muss ich folgendes installieren ?npm install mailparser --save npm install imap npm install mail-listener2
Dann dort das von @ilovegym Java in Scripte mit leben füllen ?
Gruß André
-
Hi,
du kannst die npm Pakete auch im javascript Adapter eintragen, dann werden die von iobroker direkt nach dem starten des javascript-adapters installiert und gestartet. -
@ilovegym danke für die Info. Wie sollen die denn dort eingetragen werden? Läuft das denn so noch ohne Probleme?
-
musste gerade selbst mal schauen.. nee.. da gibts n update Paket.. schau mal hier:
-
@ilovegym hast aber nur den Maillistner eingetragen. Wird dort der ganze Befehl eingegeben. Muss gleich mal schauen wenn ich zu Hause bin. Wie hast du es gelöst, bei IMAP immer verbunden zu sein? Ich sehe da die Timeout im Skript
-
@ilovegym sagte in Emails empfangen.:
musste gerade selbst mal schauen.. nee.. da gibts n update Paket.. schau mal hier:
So hab einmal geschaut. Kann es sein, dass du nur die Pakete mit Java zusammen startest? Nach meiner Eintragung und Neustart von Java ist dort dann nichts passiert. Keine Installation etc.
-
@gelberlemmy normalerweise installiert der javascript-adapter die Pakete beim Neustart des Adapters.
-
du kannst ganz ohne vpn und mit tasker einen oder mehrere datenpunkt in iobroker schreiben
-
@ilovegym sagte in Emails empfangen.:
@gelberlemmy normalerweise installiert der javascript-adapter die Pakete beim Neustart des Adapters.
Moin, hab den Adapter auch neu gestartet. Ich habe einfach den Namen wie folgt "mail-listener2" des Paketes eingetragen. Aber im LOG war nichts zu sehen. Auch kein Start des Adapters.
Werde diesen einfach einmal händisch installieren und dann dort eintragen, damit dieser dann auf jedenfall mit gestartet wird. Vielleicht klappt das ja.
-
@gelberlemmy vielleicht gibts das paket auf npm nicht mehr? Hab da schon lange nichts mehr an der Installation gemacht..
Schau einfach mal, was da jetzt aktuell ist..