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. Skripten / Logik
  4. JavaScript
  5. Emails auswerten, Adapter stürzt ab

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    192

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    572

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.8k

Emails auswerten, Adapter stürzt ab

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 351 Aufrufe 3 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.
  • M Offline
    M Offline
    Moebi
    schrieb am zuletzt editiert von
    #1

    Ich versuche gerade eine Emailauswertung zu realisieren, dabei habe ich als Anfänger viele kleine Probleme.

    Derzeit habe ich folgenden Code:

    onst Imap = require('imap'); // imap-Modul wird benötigt
    const utf8 = require('utf8'); // utf8-Modul wird benötigt
    
    const imap = new Imap({
        user: 'name@server.de', // E-Mail-Adresse
        password: 'sagichnicht', // Passwort
        host: 'imap.anbieter.de', // IMAP-Server
        port: 993, // Port
        tls: true // TLS verwenden
    });
    
    function openInbox(cb) {
        imap.openBox('INBOX', true, cb);
    }
    
    imap.once('ready', function() {
        openInbox(function(err, box) {
            if (err) throw err;
            imap.search(['UNSEEN'], function(err, results) {
                if (err) throw err;
                const f = imap.fetch(results, { bodies: '' });
                f.on('message', function(msg, seqno) {
                    msg.on('body', function(stream, info) {
                        let buffer = '';
                        stream.on('data', function(chunk) {
                            buffer += chunk.toString('utf8');
                        });
                        stream.once('end', function() {
                            console.log('E-Mail empfangen:', buffer); // Debug-Ausgabe
                            const text = utf8.decode(buffer); // UTF-8 kodierten Text in lesbares Format umwandeln
                            setState('0_userdata.0.Datenpunkt.Alarmtext', text); // In Datenpunkt speichern
                        });
                    });
                    msg.once('end', function() {
                        imap.setFlags(seqno, '\Seen', function(err) { // E-Mail als gelesen markieren
                            if (err) throw err;
                        });
                    });
                });
                f.once('error', function(err) {
                    console.log('Fehler beim Abrufen der E-Mail:', err);
                });
                f.once('end', function() {
                    imap.end();
                });
            });
        });
    });
    
    imap.once('error', function(err) {
        console.log('Fehler beim Verbinden mit dem IMAP-Server:', err);
    });
    
    imap.once('end', function() {
        console.log('Verbindung zum IMAP-Server getrennt');
    });
    
    imap.connect(); // Verbindung zum IMAP-Server herstellen
    

    Wenn ich das Script starte wird die letzte Mail abgeholt und in den Datenpunkt geschrieben.
    ABER
    Die Mail wird nicht als gelesen markiert und der javascriptadapter stürzt komplett ab.
    Vermutlich wird der Code daher nicht volständig ausgeführt.

    im LOG finde ich mich nicht zurecht um den Fehler genauer zu identifizieren.

    Schalte ich das script ab, lässt sich der JS Adapter wieder starten und ich könnt die nächste mail abholen.

    Auszug aus dem LOG

    host.raspberrypi
    2023-04-01 17:45:48.824	error	instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
    host.raspberrypi
    2023-04-01 17:45:48.824	error	Caught by controller[0]: at processTicksAndRejections (node:internal/process/task_queues:82:21)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at emitReadable_ (node:internal/streams/readable:578:12)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.emit (node:domain:489:12)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.emit (node:events:513:28)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.Parser._cbReadable (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:53:12)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._tryread (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:82:15)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._parse (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:139:16)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:175:10)
    host.raspberrypi
    2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser.emit (node:domain:489:12)
    host.raspberrypi
    2023-04-01 17:45:48.822	error	Caught by controller[0]: at Parser.emit (node:events:513:28)
    host.raspberrypi
    2023-04-01 17:45:48.822	error	Caught by controller[0]: at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:194:10)
    host.raspberrypi
    2023-04-01 17:45:48.822	error	Caught by controller[0]: at Connection._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:1502:11)
    host.raspberrypi
    2023-04-01 17:45:48.821	error	Caught by controller[0]: Error: Command not allowed during EXAMINE
    
    javascript.0
    2023-04-01 17:45:48.716	error	Error: Command not allowed during EXAMINE at Connection._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:1502:11) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:194:10) at Parser.emit (node:events:513:28) at Parser.emit (node:domain:489:12) at Parser._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:175:10) at Parser._parse (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:139:16) at Parser._tryread (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:82:15) at TLSSocket.Parser._cbReadable (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:53:12) at TLSSocket.emit (node:events:513:28) at TLSSocket.emit (node:domain:489:12) at emitReadable_ (node:internal/streams/readable:578:12) at processTicksAndRejections (node:internal/process/task_queues:82:21)
    
    javascript.0
    2023-04-01 17:45:48.716	error	Error: Command not allowed during EXAMINE
    
    javascript.0
    2023-04-01 17:45:48.715	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
    

    Was bedeutet Error: Command not allowed during EXAMINE ??

    Oder gibt es eine leichtere Möglichkeit Emails abzufragen??

    M 1 Antwort Letzte Antwort
    0
    • M Moebi

      Ich versuche gerade eine Emailauswertung zu realisieren, dabei habe ich als Anfänger viele kleine Probleme.

      Derzeit habe ich folgenden Code:

      onst Imap = require('imap'); // imap-Modul wird benötigt
      const utf8 = require('utf8'); // utf8-Modul wird benötigt
      
      const imap = new Imap({
          user: 'name@server.de', // E-Mail-Adresse
          password: 'sagichnicht', // Passwort
          host: 'imap.anbieter.de', // IMAP-Server
          port: 993, // Port
          tls: true // TLS verwenden
      });
      
      function openInbox(cb) {
          imap.openBox('INBOX', true, cb);
      }
      
      imap.once('ready', function() {
          openInbox(function(err, box) {
              if (err) throw err;
              imap.search(['UNSEEN'], function(err, results) {
                  if (err) throw err;
                  const f = imap.fetch(results, { bodies: '' });
                  f.on('message', function(msg, seqno) {
                      msg.on('body', function(stream, info) {
                          let buffer = '';
                          stream.on('data', function(chunk) {
                              buffer += chunk.toString('utf8');
                          });
                          stream.once('end', function() {
                              console.log('E-Mail empfangen:', buffer); // Debug-Ausgabe
                              const text = utf8.decode(buffer); // UTF-8 kodierten Text in lesbares Format umwandeln
                              setState('0_userdata.0.Datenpunkt.Alarmtext', text); // In Datenpunkt speichern
                          });
                      });
                      msg.once('end', function() {
                          imap.setFlags(seqno, '\Seen', function(err) { // E-Mail als gelesen markieren
                              if (err) throw err;
                          });
                      });
                  });
                  f.once('error', function(err) {
                      console.log('Fehler beim Abrufen der E-Mail:', err);
                  });
                  f.once('end', function() {
                      imap.end();
                  });
              });
          });
      });
      
      imap.once('error', function(err) {
          console.log('Fehler beim Verbinden mit dem IMAP-Server:', err);
      });
      
      imap.once('end', function() {
          console.log('Verbindung zum IMAP-Server getrennt');
      });
      
      imap.connect(); // Verbindung zum IMAP-Server herstellen
      

      Wenn ich das Script starte wird die letzte Mail abgeholt und in den Datenpunkt geschrieben.
      ABER
      Die Mail wird nicht als gelesen markiert und der javascriptadapter stürzt komplett ab.
      Vermutlich wird der Code daher nicht volständig ausgeführt.

      im LOG finde ich mich nicht zurecht um den Fehler genauer zu identifizieren.

      Schalte ich das script ab, lässt sich der JS Adapter wieder starten und ich könnt die nächste mail abholen.

      Auszug aus dem LOG

      host.raspberrypi
      2023-04-01 17:45:48.824	error	instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
      host.raspberrypi
      2023-04-01 17:45:48.824	error	Caught by controller[0]: at processTicksAndRejections (node:internal/process/task_queues:82:21)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at emitReadable_ (node:internal/streams/readable:578:12)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.emit (node:domain:489:12)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.emit (node:events:513:28)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at TLSSocket.Parser._cbReadable (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:53:12)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._tryread (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:82:15)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._parse (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:139:16)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:175:10)
      host.raspberrypi
      2023-04-01 17:45:48.823	error	Caught by controller[0]: at Parser.emit (node:domain:489:12)
      host.raspberrypi
      2023-04-01 17:45:48.822	error	Caught by controller[0]: at Parser.emit (node:events:513:28)
      host.raspberrypi
      2023-04-01 17:45:48.822	error	Caught by controller[0]: at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:194:10)
      host.raspberrypi
      2023-04-01 17:45:48.822	error	Caught by controller[0]: at Connection._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:1502:11)
      host.raspberrypi
      2023-04-01 17:45:48.821	error	Caught by controller[0]: Error: Command not allowed during EXAMINE
      
      javascript.0
      2023-04-01 17:45:48.716	error	Error: Command not allowed during EXAMINE at Connection._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:1502:11) at Parser.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Connection.js:194:10) at Parser.emit (node:events:513:28) at Parser.emit (node:domain:489:12) at Parser._resTagged (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:175:10) at Parser._parse (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:139:16) at Parser._tryread (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:82:15) at TLSSocket.Parser._cbReadable (/opt/iobroker/node_modules/iobroker.javascript/node_modules/imap/lib/Parser.js:53:12) at TLSSocket.emit (node:events:513:28) at TLSSocket.emit (node:domain:489:12) at emitReadable_ (node:internal/streams/readable:578:12) at processTicksAndRejections (node:internal/process/task_queues:82:21)
      
      javascript.0
      2023-04-01 17:45:48.716	error	Error: Command not allowed during EXAMINE
      
      javascript.0
      2023-04-01 17:45:48.715	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      Was bedeutet Error: Command not allowed during EXAMINE ??

      Oder gibt es eine leichtere Möglichkeit Emails abzufragen??

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @moebi Es gibt einen Adapter imap?
      6f641044-5714-4b44-a94f-7dacba294f68-image.png

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      M 1 Antwort Letzte Antwort
      0
      • M MCU

        @moebi Es gibt einen Adapter imap?
        6f641044-5714-4b44-a94f-7dacba294f68-image.png

        M Offline
        M Offline
        Moebi
        schrieb am zuletzt editiert von
        #3

        @mcu nicht das ich wüsste.
        Es gibt das npm Modul IMAP welches irgendwie für den Javascript Adapter notwendiges für E-Mail bereitstellen soll...

        DJMarc75D 1 Antwort Letzte Antwort
        0
        • M Moebi

          @mcu nicht das ich wüsste.
          Es gibt das npm Modul IMAP welches irgendwie für den Javascript Adapter notwendiges für E-Mail bereitstellen soll...

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

          @moebi https://forum.iobroker.net/topic/63400/test-adapter-iobroker-imap-v0-0-1-github

          Ist zwar noch in der frühen Testphase, läuft aber schon gut.

          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
          • M Offline
            M Offline
            Moebi
            schrieb am zuletzt editiert von
            #5

            @djmarc75 aaah, ich hatte das als Frage verstanden 😅

            Das schaue ich mir mal an!

            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

            931

            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