Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Javascript Instanz wird von MailListener getötet

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    350

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Javascript Instanz wird von MailListener getötet

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
15 Beiträge 5 Kommentatoren 1.3k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W WolfgangFB

    @fastfoot
    Die Zeile mailListener.start() ist ei copy&paste verloren gegangen. Ich habe das jetzt mal probiert, mal sehen ob es hilf.

    F Offline
    F Offline
    fastfoot
    schrieb am zuletzt editiert von
    #5

    @wolfgangfb Diese Zeile war aber nicht für den Fehler verantwortlich. Deshalb besser die Nachfolgeversion installieren. Ob er generell connected solltest du sofort nach dem Start sehen, selbst wenn keine neue Mail da ist

    iobroker läuft unter Docker auf QNAP TS-451+
    SkriptRecovery: https://forum.iobroker.net/post/930558

    W 1 Antwort Letzte Antwort
    0
    • F fastfoot

      @wolfgangfb Diese Zeile war aber nicht für den Fehler verantwortlich. Deshalb besser die Nachfolgeversion installieren. Ob er generell connected solltest du sofort nach dem Start sehen, selbst wenn keine neue Mail da ist

      W Offline
      W Offline
      WolfgangFB
      schrieb am zuletzt editiert von
      #6

      @fastfoot

      Das Problem taucht immer noch auf

      TypeError: mime.extension is not a function at MailParser._generateFileName (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:1407:27) at MailParser._processStateHeader (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:309:61) at MailParser._process (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:227:22) at processImmediate (internal/timers.js:464:21)
      

      Kann es sein,. dass es sich um Anhänge handelt, die das Problem auslösen?
      Ich habe aber den Part mit

      mailListener.on("attachment"
      

      schon rausgenommen. Kann man dem Maillistener irgendwie beibringen, Anhänge zu ignorieren?

      F 1 Antwort Letzte Antwort
      0
      • W WolfgangFB

        @fastfoot

        Das Problem taucht immer noch auf

        TypeError: mime.extension is not a function at MailParser._generateFileName (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:1407:27) at MailParser._processStateHeader (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:309:61) at MailParser._process (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:227:22) at processImmediate (internal/timers.js:464:21)
        

        Kann es sein,. dass es sich um Anhänge handelt, die das Problem auslösen?
        Ich habe aber den Part mit

        mailListener.on("attachment"
        

        schon rausgenommen. Kann man dem Maillistener irgendwie beibringen, Anhänge zu ignorieren?

        F Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #7

        @wolfgangfb

          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
        

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          WolfgangFB
          schrieb am zuletzt editiert von
          #8

          @fastfoot
          Ich konnte jetzt zu 100% nachvollziehen, dass die gesamte Javascript Instanz abstürzt, sobald die letzte Mail einen Anhang enthält.
          Ich habe inzwischen

          var MailListener = require("mail-listener2-updated");
          

          und

            mailParserOptions: {streamAttachments: false}, // options to be passed to mailParser lib.
            attachments: false, // download attachments as they are encountered to the project directory
            attachmentOptions: { directory: AttachmentsDirectory } // specify a download directory for attachments
          

          gesetzt.
          Der Trigger

          mailListener.on("mail", function(mail, seqno, attributes){
          

          wird bis zum Ende durchlaufen (mit Logdatei kontrolliert). Dann kommt kein weiterer Logeintrag und die Javascript Instanz stürzt ab, Nach ca. 40 Sekunden startet die Javascript Instanz neu, demnach auch das Skript und das ganze geht in eine Endlosschleife.
          Hat noch jemand eine Ahnung, wie ich das abstellen könnte?
          Es wäre ja schon hilfreich, wenn on("mail") wirklich nur aufgerufen werden würde, wenn wirklich eine neue Mail kommt und nicht bei jedem Skriptstart die letzte Mail wieder gelesen werden würde.
          Welche Alternativen gibt es zu mail-listener2? Ich brauche eigentlich nur den Betreff und den Absender. Der Rest ist für diese Aufgabe irrelevant.

          DJMarc75D F 2 Antworten Letzte Antwort
          0
          • W WolfgangFB

            @fastfoot
            Ich konnte jetzt zu 100% nachvollziehen, dass die gesamte Javascript Instanz abstürzt, sobald die letzte Mail einen Anhang enthält.
            Ich habe inzwischen

            var MailListener = require("mail-listener2-updated");
            

            und

              mailParserOptions: {streamAttachments: false}, // options to be passed to mailParser lib.
              attachments: false, // download attachments as they are encountered to the project directory
              attachmentOptions: { directory: AttachmentsDirectory } // specify a download directory for attachments
            

            gesetzt.
            Der Trigger

            mailListener.on("mail", function(mail, seqno, attributes){
            

            wird bis zum Ende durchlaufen (mit Logdatei kontrolliert). Dann kommt kein weiterer Logeintrag und die Javascript Instanz stürzt ab, Nach ca. 40 Sekunden startet die Javascript Instanz neu, demnach auch das Skript und das ganze geht in eine Endlosschleife.
            Hat noch jemand eine Ahnung, wie ich das abstellen könnte?
            Es wäre ja schon hilfreich, wenn on("mail") wirklich nur aufgerufen werden würde, wenn wirklich eine neue Mail kommt und nicht bei jedem Skriptstart die letzte Mail wieder gelesen werden würde.
            Welche Alternativen gibt es zu mail-listener2? Ich brauche eigentlich nur den Betreff und den Absender. Der Rest ist für diese Aufgabe irrelevant.

            DJMarc75D Offline
            DJMarc75D Offline
            DJMarc75
            schrieb am zuletzt editiert von
            #9

            @wolfgangfb sagte in Javascript Instanz wird von MailListener getötet:

            Welche Alternativen gibt es zu mail-listener2? Ich brauche eigentlich nur den Betreff und den Absender. Der Rest ist für diese Aufgabe irrelevant.

            Da ich ein ähnliches Problem hatte habe ich das per NODE-RED gelöst - läuft und ich schreibe mir alle Werte einzeln in ein JSON damit.

            Lehrling seit 1975 !!!
            Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
            https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

            1 Antwort Letzte Antwort
            0
            • W WolfgangFB

              @fastfoot
              Ich konnte jetzt zu 100% nachvollziehen, dass die gesamte Javascript Instanz abstürzt, sobald die letzte Mail einen Anhang enthält.
              Ich habe inzwischen

              var MailListener = require("mail-listener2-updated");
              

              und

                mailParserOptions: {streamAttachments: false}, // options to be passed to mailParser lib.
                attachments: false, // download attachments as they are encountered to the project directory
                attachmentOptions: { directory: AttachmentsDirectory } // specify a download directory for attachments
              

              gesetzt.
              Der Trigger

              mailListener.on("mail", function(mail, seqno, attributes){
              

              wird bis zum Ende durchlaufen (mit Logdatei kontrolliert). Dann kommt kein weiterer Logeintrag und die Javascript Instanz stürzt ab, Nach ca. 40 Sekunden startet die Javascript Instanz neu, demnach auch das Skript und das ganze geht in eine Endlosschleife.
              Hat noch jemand eine Ahnung, wie ich das abstellen könnte?
              Es wäre ja schon hilfreich, wenn on("mail") wirklich nur aufgerufen werden würde, wenn wirklich eine neue Mail kommt und nicht bei jedem Skriptstart die letzte Mail wieder gelesen werden würde.
              Welche Alternativen gibt es zu mail-listener2? Ich brauche eigentlich nur den Betreff und den Absender. Der Rest ist für diese Aufgabe irrelevant.

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von
              #10

              @wolfgangfb sagte in Javascript Instanz wird von MailListener getötet:

              attachmentOptions: { directory: AttachmentsDirectory }

              hast markSeen auf false gesetzt?
              Stimmt dein attachmentOptions: { directory: AttachmentsDirectory }?

              Ansonsten ist das Programm halt schon recht betagt. Mehr fällt mir dazu nicht ein

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              W 1 Antwort Letzte Antwort
              0
              • F fastfoot

                @wolfgangfb sagte in Javascript Instanz wird von MailListener getötet:

                attachmentOptions: { directory: AttachmentsDirectory }

                hast markSeen auf false gesetzt?
                Stimmt dein attachmentOptions: { directory: AttachmentsDirectory }?

                Ansonsten ist das Programm halt schon recht betagt. Mehr fällt mir dazu nicht ein

                W Offline
                W Offline
                WolfgangFB
                schrieb am zuletzt editiert von
                #11

                @fastfoot
                MarkSeen hat das ganze etwas verbessert.
                Gibt es denn Alternativen um Mails zu empfangen?

                DJMarc75D F 2 Antworten Letzte Antwort
                0
                • W WolfgangFB

                  @fastfoot
                  MarkSeen hat das ganze etwas verbessert.
                  Gibt es denn Alternativen um Mails zu empfangen?

                  DJMarc75D Offline
                  DJMarc75D Offline
                  DJMarc75
                  schrieb am zuletzt editiert von
                  #12

                  @wolfgangfb sagte in Javascript Instanz wird von MailListener getötet:

                  Gibt es denn Alternativen um Mails zu empfangen?

                  Ähm... ignoriert ?

                  @djmarc75 sagte in Javascript Instanz wird von MailListener getötet:

                  Da ich ein ähnliches Problem hatte habe ich das per NODE-RED gelöst - läuft und ich schreibe mir alle Werte einzeln in ein JSON damit.

                  Lehrling seit 1975 !!!
                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                  1 Antwort Letzte Antwort
                  0
                  • W WolfgangFB

                    @fastfoot
                    MarkSeen hat das ganze etwas verbessert.
                    Gibt es denn Alternativen um Mails zu empfangen?

                    F Offline
                    F Offline
                    fastfoot
                    schrieb am zuletzt editiert von
                    #13

                    @wolfgangfb sagte in Javascript Instanz wird von MailListener getötet:

                    Gibt es denn Alternativen um Mails zu empfangen?

                    schau dir mal node-imap an, das ist recht aktuell

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    1 Antwort Letzte Antwort
                    0
                    • F Offline
                      F Offline
                      fastfoot
                      schrieb am zuletzt editiert von
                      #14

                      Hier mal ein Beispiel mit node-imap:

                      /*
                       * Zweck:     liest emails von Imap Providern
                       * Datum:     07.07.2022
                       * Autor:     @fastfoot
                       *            für iobroker modifizierter Beispielcode von https://github.com/mscdex/node-imap
                      */
                      var Imap = require('imap'),
                          inspect = require('util').inspect;
                      
                      var imap = new Imap({
                          user: 'user@gmail.com',
                          password: 'mypassword',
                          host: 'imap.gmail.com',
                          port: 993,
                          tls: true,
                          tlsOptions: { rejectUnauthorized: false }, //verhindert den Fehler 'self signed certificate'
                          debug: console.log // oder null 
                      });
                      
                      function openInbox(cb) {
                          imap.openBox('INBOX', true, cb);
                      }
                      
                      imap.once('ready', function () {
                          openInbox(function (err, box) {
                              if (err) throw err;
                              var f = imap.seq.fetch('1:5', {
                                  bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)',
                                  struct: true
                              });
                              f.on('message', function (msg, seqno) {
                                  console.log('Message #' + seqno);
                                  var prefix = '(#' + seqno + ') ';
                                  msg.on('body', function (stream, info) {
                                      var buffer = '';
                                      stream.on('data', function (chunk) {
                                          buffer += chunk.toString('utf8');
                                      });
                                      stream.once('end', function () {
                                          const headers = Imap.parseHeader(buffer);
                                          log('Datum: ' + headers.date[0]);
                                          log('From: ' + headers.from[0]);
                                          log('To: ' + headers.to[0]);
                                          log('Subject: ' + headers.subject[0]);
                                      });
                                  });
                                  msg.once('attributes', function (attrs) {
                                      console.log(prefix + 'Attributes: ' + inspect(attrs, false, 8));
                                  });
                                  msg.once('end', function () {
                                      console.log(prefix + 'Finished');
                                  });
                              });
                              f.once('error', function (err) {
                                  console.log('Fetch error: ' + err);
                              });
                              f.once('end', function () {
                                  console.log('Done fetching all messages!');
                                  imap.end();
                              });
                          });
                      });
                      
                      imap.once('error', function (err) {
                          console.log(err);
                      });
                      
                      imap.once('end', function () {
                          console.log('Connection ended');
                      });
                      
                      imap.connect();
                      
                      onStop(() => {
                          imap.end();
                      })
                      
                      

                      iobroker läuft unter Docker auf QNAP TS-451+
                      SkriptRecovery: https://forum.iobroker.net/post/930558

                      M 1 Antwort Letzte Antwort
                      0
                      • F fastfoot

                        Hier mal ein Beispiel mit node-imap:

                        /*
                         * Zweck:     liest emails von Imap Providern
                         * Datum:     07.07.2022
                         * Autor:     @fastfoot
                         *            für iobroker modifizierter Beispielcode von https://github.com/mscdex/node-imap
                        */
                        var Imap = require('imap'),
                            inspect = require('util').inspect;
                        
                        var imap = new Imap({
                            user: 'user@gmail.com',
                            password: 'mypassword',
                            host: 'imap.gmail.com',
                            port: 993,
                            tls: true,
                            tlsOptions: { rejectUnauthorized: false }, //verhindert den Fehler 'self signed certificate'
                            debug: console.log // oder null 
                        });
                        
                        function openInbox(cb) {
                            imap.openBox('INBOX', true, cb);
                        }
                        
                        imap.once('ready', function () {
                            openInbox(function (err, box) {
                                if (err) throw err;
                                var f = imap.seq.fetch('1:5', {
                                    bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)',
                                    struct: true
                                });
                                f.on('message', function (msg, seqno) {
                                    console.log('Message #' + seqno);
                                    var prefix = '(#' + seqno + ') ';
                                    msg.on('body', function (stream, info) {
                                        var buffer = '';
                                        stream.on('data', function (chunk) {
                                            buffer += chunk.toString('utf8');
                                        });
                                        stream.once('end', function () {
                                            const headers = Imap.parseHeader(buffer);
                                            log('Datum: ' + headers.date[0]);
                                            log('From: ' + headers.from[0]);
                                            log('To: ' + headers.to[0]);
                                            log('Subject: ' + headers.subject[0]);
                                        });
                                    });
                                    msg.once('attributes', function (attrs) {
                                        console.log(prefix + 'Attributes: ' + inspect(attrs, false, 8));
                                    });
                                    msg.once('end', function () {
                                        console.log(prefix + 'Finished');
                                    });
                                });
                                f.once('error', function (err) {
                                    console.log('Fetch error: ' + err);
                                });
                                f.once('end', function () {
                                    console.log('Done fetching all messages!');
                                    imap.end();
                                });
                            });
                        });
                        
                        imap.once('error', function (err) {
                            console.log(err);
                        });
                        
                        imap.once('end', function () {
                            console.log('Connection ended');
                        });
                        
                        imap.connect();
                        
                        onStop(() => {
                            imap.end();
                        })
                        
                        
                        M Offline
                        M Offline
                        Masl
                        schrieb am zuletzt editiert von
                        #15

                        @fastfoot Kannst du mir zufällig helfen, wie man einen Datenpunkt mit dieser Vorlage erstellt die man später auslesen kann? Der Mail-Listener bringt mir nur Fehler...

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

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

                        674

                        Online

                        32.5k

                        Benutzer

                        81.8k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe