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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.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 Offline
    W Offline
    WolfgangFB
    schrieb am zuletzt editiert von
    #1

    Hallo, bei manchen E-Mails bring der Mail Listener die gesamte Javaskript Instanz zum Absturz.
    Den Code habe ich eigentlich 1:1 von der github Seite übernommen.

    Folgendes steht im Logfile:

    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)
    error	Error: mime.extension is not a function
    error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
    

    Das Skript dass meine Mails überwachen soll besteht bisher nur aus:

    var MailListener = require("mail-listener2");
    
    var mailobj = {val:
                    {
                        from:  "",
                        topic: "",
                        text: "",
                    }
                };
    
    var mailListener = new MailListener({ 
      username: "xxxxxxxxxx",
      password: "xxxxx",
      host: "imap.1und1.de",
      port: 993, // imap port 
      tls: true,
      connTimeout: 10000, // Default by node-imap
      authTimeout: 5000, // Default by node-imap,
      debug: console.log, // Or your custom function with only one incoming argument. Default: null
      tlsOptions: { rejectUnauthorized: false },
      mailbox: "Inbox", // mailbox to monitor
      searchFilter: ["*"], //;["UNSEEN", "FLAGGED"], // 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.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);
        });
    
    

    Was läuft hier schief?

    mickymM F 2 Antworten Letzte Antwort
    0
    • W WolfgangFB

      Hallo, bei manchen E-Mails bring der Mail Listener die gesamte Javaskript Instanz zum Absturz.
      Den Code habe ich eigentlich 1:1 von der github Seite übernommen.

      Folgendes steht im Logfile:

      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)
      error	Error: mime.extension is not a function
      error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      Das Skript dass meine Mails überwachen soll besteht bisher nur aus:

      var MailListener = require("mail-listener2");
      
      var mailobj = {val:
                      {
                          from:  "",
                          topic: "",
                          text: "",
                      }
                  };
      
      var mailListener = new MailListener({ 
        username: "xxxxxxxxxx",
        password: "xxxxx",
        host: "imap.1und1.de",
        port: 993, // imap port 
        tls: true,
        connTimeout: 10000, // Default by node-imap
        authTimeout: 5000, // Default by node-imap,
        debug: console.log, // Or your custom function with only one incoming argument. Default: null
        tlsOptions: { rejectUnauthorized: false },
        mailbox: "Inbox", // mailbox to monitor
        searchFilter: ["*"], //;["UNSEEN", "FLAGGED"], // 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.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);
          });
      
      

      Was läuft hier schief?

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #2

      @wolfgangfb Kill den Mörder. ;)

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      0
      • W WolfgangFB

        Hallo, bei manchen E-Mails bring der Mail Listener die gesamte Javaskript Instanz zum Absturz.
        Den Code habe ich eigentlich 1:1 von der github Seite übernommen.

        Folgendes steht im Logfile:

        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)
        error	Error: mime.extension is not a function
        error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
        

        Das Skript dass meine Mails überwachen soll besteht bisher nur aus:

        var MailListener = require("mail-listener2");
        
        var mailobj = {val:
                        {
                            from:  "",
                            topic: "",
                            text: "",
                        }
                    };
        
        var mailListener = new MailListener({ 
          username: "xxxxxxxxxx",
          password: "xxxxx",
          host: "imap.1und1.de",
          port: 993, // imap port 
          tls: true,
          connTimeout: 10000, // Default by node-imap
          authTimeout: 5000, // Default by node-imap,
          debug: console.log, // Or your custom function with only one incoming argument. Default: null
          tlsOptions: { rejectUnauthorized: false },
          mailbox: "Inbox", // mailbox to monitor
          searchFilter: ["*"], //;["UNSEEN", "FLAGGED"], // 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.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);
            });
        
        

        Was läuft hier schief?

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

        @wolfgangfb ich habe const MailListener = require("mail-listener2-updated") verwendet und das funktioniert mit gmail. In deinem code fehlt noch mailListener.start()

        Evtl solltest du auch mal die Attachements abschalten. Unbedingt muss ins Skript das hier rein, sonst hört der auch bei Stop des Skripts nicht auf :-)

        onStop(() => {
            mailListener.stop();
        })
        

        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 ich habe const MailListener = require("mail-listener2-updated") verwendet und das funktioniert mit gmail. In deinem code fehlt noch mailListener.start()

          Evtl solltest du auch mal die Attachements abschalten. Unbedingt muss ins Skript das hier rein, sonst hört der auch bei Stop des Skripts nicht auf :-)

          onStop(() => {
              mailListener.stop();
          })
          
          W Offline
          W Offline
          WolfgangFB
          schrieb am zuletzt editiert von
          #4

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

          F 1 Antwort Letzte Antwort
          0
          • 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

                                781

                                Online

                                32.5k

                                Benutzer

                                81.7k

                                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