Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Emails empfangen.

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Emails empfangen.

    This topic has been deleted. Only users with topic management privileges can see it.
    • Wiednitz
      Wiednitz last edited by Wiednitz

      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 ???

      capture_001_08112019_115736.jpg

      // 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
      
      1 Reply Last reply Reply Quote 0
      • K
        Knusterus last edited by Knusterus

        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

        1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          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 unmaintained

          Dann 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

          1 Reply Last reply Reply Quote 0
          • M
            M-A-X last edited by

            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

            bahnuhr 1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active @M-A-X last edited by

              @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,
              Max

              Ich sende mir per tasker eine telegram nachricht an iob.
              Und auf diese wird dann reagiert.

              M 1 Reply Last reply Reply Quote 0
              • M
                M-A-X @bahnuhr last edited by

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

                bahnuhr 1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active @M-A-X last edited by bahnuhr

                  @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

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    M-A-X @bahnuhr last edited by

                    @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).

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • trino
                      trino last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • gelberlemmy
                        gelberlemmy @Neuschwansteini last edited by

                        @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é

                        Neuschwansteini 1 Reply Last reply Reply Quote 0
                        • Neuschwansteini
                          Neuschwansteini @gelberlemmy last edited by

                          @gelberlemmy

                          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.

                          gelberlemmy 1 Reply Last reply Reply Quote 0
                          • gelberlemmy
                            gelberlemmy @Neuschwansteini last edited by

                            @ilovegym danke für die Info. Wie sollen die denn dort eingetragen werden? Läuft das denn so noch ohne Probleme?

                            Neuschwansteini 1 Reply Last reply Reply Quote 0
                            • Neuschwansteini
                              Neuschwansteini @gelberlemmy last edited by

                              @gelberlemmy

                              musste gerade selbst mal schauen.. nee.. da gibts n update Paket.. schau mal hier:
                              16b98de3-2b1a-4294-8fad-a154062e373c-grafik.png

                              gelberlemmy 2 Replies Last reply Reply Quote 0
                              • gelberlemmy
                                gelberlemmy @Neuschwansteini last edited by

                                @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

                                1 Reply Last reply Reply Quote 0
                                • gelberlemmy
                                  gelberlemmy @Neuschwansteini last edited by

                                  @ilovegym sagte in Emails empfangen.:

                                  @gelberlemmy

                                  musste gerade selbst mal schauen.. nee.. da gibts n update Paket.. schau mal hier:
                                  16b98de3-2b1a-4294-8fad-a154062e373c-grafik.png

                                  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.

                                  Neuschwansteini 1 Reply Last reply Reply Quote -1
                                  • Neuschwansteini
                                    Neuschwansteini @gelberlemmy last edited by

                                    @gelberlemmy normalerweise installiert der javascript-adapter die Pakete beim Neustart des Adapters.

                                    gelberlemmy 2 Replies Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @M-A-X last edited by

                                      @M-A-X

                                      du kannst ganz ohne vpn und mit tasker einen oder mehrere datenpunkt in iobroker schreiben

                                      https://forum.iobroker.net/post/274658

                                      M 1 Reply Last reply Reply Quote 0
                                      • gelberlemmy
                                        gelberlemmy @Neuschwansteini last edited by

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

                                        Neuschwansteini 1 Reply Last reply Reply Quote 0
                                        • Neuschwansteini
                                          Neuschwansteini @gelberlemmy last edited by

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

                                          1 Reply Last reply Reply Quote 0
                                          • gelberlemmy
                                            gelberlemmy @Neuschwansteini last edited by gelberlemmy

                                            @ilovegym sagte in Emails empfangen.:

                                            @gelberlemmy normalerweise installiert der javascript-adapter die Pakete beim Neustart des Adapters.

                                            Ich habe das jetzt mal über Putty angeschoben und sieht wie folgt aus. Am Ende gibt eine Warnung. Ist diese normal ?

                                            pi@raspberrypi:~ $ npm install imap
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] - rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] \ rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] \ rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] \ rollbackFailedOptional: verb npm-session 6f2886487ff7552
                                            [..................] / fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] - fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] - fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] / fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] - fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] \ fetchMetadata: sill resolveWithNewModule imap@0.8.19 che
                                            [..................] / fetchMetadata: sill resolveWithNewModule readable-stream
                                            [..................] | fetchMetadata: sill resolveWithNewModule readable-stream
                                            [..................] \ fetchMetadata: sill resolveWithNewModule readable-stream
                                            [..................] \ fetchMetadata: sill resolveWithNewModule readable-stream
                                            [  ................] - fetchMetadata: sill resolveWithNewModule string_decoder@
                                            [      ............] - diffTrees: sill install generateActionsToTake
                                            [       ...........] | postinstall: sill install executeActions
                                            [       ...........] - extract:imap: verb lock using /home/pi/.npm/_locks/stagi
                                            [       ...........] - extract:imap: verb lock using /home/pi/.npm/_locks/stagi
                                            [       ...........] / extract:imap: verb lock using /home/pi/.npm/_locks/stagi
                                            [            ......] | finalize:imap: sill doSerial finalize 64
                                            [            ......] / refresh-package-json:imap: timing action:finalize Comple
                                            [            ......] | refresh-package-json:imap: timing action:finalize Comple
                                            [            ......] \ postinstall: info lifecycle imap@0.8.19~postinstall: ima
                                            
                                            
                                            npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json'
                                            npm notice created a lockfile as package-lock.json. You should commit this file.
                                            npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'
                                            npm WARN pi No description
                                            npm WARN pi No repository field.
                                            npm WARN pi No README data
                                            npm WARN pi No license field.
                                            + imap@0.8.19
                                            added 8 packages from 4 contributors and audited 8 packages in 1.604s
                                            found 0 vulnerabilities
                                            [            ......] \ postinstall: sill install printInstalled
                                            
                                            
                                            Neuschwansteini 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            754
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            31
                                            119
                                            17044
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo