Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter ioBroker.imap latest/stable

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter ioBroker.imap latest/stable

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      Lucky_ESA Developer Most Active @bahnuhr last edited by

      @bahnuhr Ich habe das Gefühl das wir aneinander vorbei reden. Der Adapter speichert keine Anhänge, dass muss du mit dem Script machen. Das habe ich mit Absicht gemacht da sonst dein RAM Verbauch explodiert. Welche uid steht denn nun bei dieser Mail?

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

        @lucky_esa
        a69eda13-a87b-43c9-b746-eebdd93cb982-image.png

        L 1 Reply Last reply Reply Quote 0
        • L
          Lucky_ESA Developer Most Active @bahnuhr last edited by

          @bahnuhr Versuch es mal so.

          sendTo("imap.0", "getIMAPRequest", {
          
            name: "ppc@dbrp-mueller.de",
          
             max: 20,
          
             search: '["ALL"]',
          
             fetch:  JSON.parse('{"fetch": true, "seqno": [21954]}'),
          
             bodie: '{bodies: "", markSeen: false}',
          
             parse: true,
          
          }, async function (result) {
              if (!result) {
                console.log("No result found!");
          	}
              for (var i_index in result) {
          
              i = result[i_index];
          
              var j_list = getAttr(i, 'body.attachments');
          
              for (var j_index in j_list) {
          
                j = j_list[j_index];
          
                json = JSON.stringify(getAttr(j, 'content'));
          
                // Dein Anhang als Buffer
          
                console.log(getAttr(json, 'data'));
          
              }
          
            }
          
            });
          
          bahnuhr 1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

            @lucky_esa
            Ja, soweit war ich ja schon.

            Im log kommt dann eine ganz große Zahlenreihe.
            d22ccbc0-d750-401e-b6d8-267643bf7633-image.png

            Ich vermute das ist der Anhang.
            Wie speichere ich dies nun, z.B. nach /opt/iobroker/anhänge

            L 1 Reply Last reply Reply Quote 0
            • L
              Lucky_ESA Developer Most Active @bahnuhr last edited by

              @bahnuhr sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

              @lucky_esa
              Ja, soweit war ich ja schon.

              Im log kommt dann eine ganz große Zahlenreihe.
              d22ccbc0-d750-401e-b6d8-267643bf7633-image.png

              Ich vermute das ist der Anhang.
              Wie speichere ich dies nun, z.B. nach /opt/iobroker/anhänge

              Das ist nun der Buffer vom Anhang den muss man nun mit fs. convertieren und mit fs. speichern. Aber ACHTUNG! Hier wurde im js-controller > 5. was geändert. Mal die Forensuche verwenden um den Beitrag zu finden.

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

                @lucky_esa sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                Aber ACHTUNG! Hier wurde im js-controller > 5. was geändert. Mal die Forensuche verwenden um den Beitrag zu finden.

                Meinst du dieses binary zeugs.
                Da ging es darum, dass ein state nicht mehr binary sein darf.

                Lösung ist und war: Der Adapter Entwickler soll mit fs.read und fs.write die Datei speichern.

                hast du dafür eine Lösung ?

                https://forum.iobroker.net/topic/60071/ankündigung-deprecation-binary-states-js-controller-5-0?_=1688216577237
                156c6921-80cd-40ef-ab03-06cee558c492-image.png

                L 1 Reply Last reply Reply Quote 0
                • L
                  Lucky_ESA Developer Most Active @bahnuhr last edited by Lucky_ESA

                  @bahnuhr Hier mal ein Beispiel.

                  var i, result, j, json;
                  sendTo("imap.0", "getIMAPRequest", {
                  
                    name: "ppc@dbrp-mueller.de",
                  
                     max: 20,
                  
                     search: '["ALL"]',
                  
                     fetch:  JSON.parse('{"fetch": true, "seqno": [21954]}'),
                  
                     bodie: '{bodies: "", markSeen: false}',
                  
                     parse: true,
                  
                  }, async function (result) {
                      if (!result) {
                          console.log("No result found!");
                          return;
                      }
                  
                      for (var i_index in result) {
                  
                      i = result[i_index];
                  
                      var j_list = getAttr(i, 'body.attachments');
                  
                      for (var j_index in j_list) {
                  
                        j = j_list[j_index];
                  
                        json = JSON.stringify(getAttr(j, 'content'));
                  
                        // Dein Anhang als Buffer
                        //console.log(getAttr(json, 'data'));
                        console.log(getAttr(j, 'filename'));
                        writeFile('vis.0', getAttr(j, 'filename'), getAttr(json, 'data'), function (error) {
                          if(error) {
                              console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                          } else {
                             console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                          }
                        });
                  
                      }
                    }
                    });
                  
                  bahnuhr 1 Reply Last reply Reply Quote 1
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                    @lucky_esa
                    Danke schön.
                    Klappt einwandfrei.

                    Wäre ich nicht drauf gekommen.
                    Damit kann ich nun weiterarbeiten.
                    Super.

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      Lucky_ESA Developer Most Active @bahnuhr last edited by Lucky_ESA

                      @bahnuhr sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                      @lucky_esa
                      Danke schön.
                      Klappt einwandfrei.

                      Wäre ich nicht drauf gekommen.
                      Damit kann ich nun weiterarbeiten.
                      Super.

                      Kein Problem. Denke noch daran das File dann wieder zu löschen.

                      var i, result, j, json;
                      sendTo("imap.0", "getIMAPRequest", {
                        name: "ppc@dbrp-mueller.de",
                         max: 20,
                         search: '["ALL"]',
                         fetch:  JSON.parse('{"fetch": true, "seqno": [21954]}'),
                         bodie: '{bodies: "", markSeen: false}',
                         parse: true,
                      }, async function (result) {
                          if (!result) {
                              console.log("No result found!");
                              return;
                          }
                          for (var i_index in result) {
                          i = result[i_index];
                          var j_list = getAttr(i, 'body.attachments');
                          for (var j_index in j_list) {
                            j = j_list[j_index];
                            json = JSON.stringify(getAttr(j, 'content'));
                            // Dein Anhang als Buffer
                            // console.log(getAttr(json, 'data'));
                            console.log(getAttr(j, 'filename'));
                            writeFile('vis.0', getAttr(j, 'filename'), getAttr(json, 'data'), function (error) {
                              if(error) {
                                  console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                              } else {
                                 console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                      		   // Hier an Telegram senden
                      		       delFile('vis.0', getAttr(j, 'filename'), function (error) {
                      				if(!error) console.log('Datei ' + getAttr(j, 'filename') +' gelöscht');
                      		       });
                              }
                            });
                          }
                        }
                        });
                      
                      1 Reply Last reply Reply Quote 0
                      • Ro75
                        Ro75 last edited by Ro75

                        @Lucky_ESA Auch für mich ein ganz interessantes Thema. Wie kann ich es schaffen, ALLE eMails vom gleichen Absender zu bekommen, damit ich dann zu jeder eMail den Anhang auswerten kann? Kannst du hierzu vielleicht bitte auch noch ein kleines Beispiel liefern?

                        Ro75.

                        L 1 Reply Last reply Reply Quote 0
                        • L
                          Lucky_ESA Developer Most Active @Ro75 last edited by

                          @ro75 sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                          @Lucky_ESA Auch für mich ein ganz interessantes Thema. Wie kann ich es schaffen, ALLE eMails vom gleichen Absender zu bekommen, damit ich dann zu jeder eMail den Anhang auswerten kann? Kannst du hierzu vielleicht bitte auch noch ein kleines Beispiel liefern?

                          Ro75.

                          Wie oben in der 2ten Post beschrieben.

                          search: '["ALL", ["HEADER", "FROM", "github@luckyskills.de"]]',
                          fetch:  JSON.parse('{"fetch": false, "seqno": [21954]}'),
                          

                          Dann muss man ein wenig mit dem Wert max spielen. Derzeit im Script werden die letzten 20 eMails geladen. Bitte immer daran denken das Anhänge einen RAM klauen.

                          Ro75 1 Reply Last reply Reply Quote 1
                          • Ro75
                            Ro75 @Lucky_ESA last edited by

                            @lucky_esa sowit ok. Allerdings habe ich 6 eMails vom selben Absender - lle haben aber eine andere "seqno". Und die ist mir ersteinmal "unbekannt". Und damit komme ich nicht weiter.

                            L 1 Reply Last reply Reply Quote 0
                            • L
                              Lucky_ESA Developer Most Active @Ro75 last edited by Lucky_ESA

                              @ro75 sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                              @lucky_esa sowit ok. Allerdings habe ich 6 eMails vom selben Absender - lle haben aber eine andere "seqno". Und die ist mir ersteinmal "unbekannt". Und damit komme ich nicht weiter.

                              Wenn du den Code nimmst wird keine Nummer benötigt. Es werden die letzte 20 eMails mit dem Absende github@luckyskills.de geladen. Diese eMails kommen als Array. D, h. diese müssen dann auch durch eine Schleife durchlaufen.
                              Habe ich ja schon berücksichtigt. Gerade mal getestet...Hatte 3 Mails von einem Absender ausgewertert. Dafür hat das Script 6 Sekunden benötigt.

                              Ro75 2 Replies Last reply Reply Quote 1
                              • Ro75
                                Ro75 @Lucky_ESA last edited by

                                @lucky_esa Im Moment stehe ich auf dem Schlauch. Könntest du bitte dazu ein kleines Beispiel geben?

                                1 Reply Last reply Reply Quote 0
                                • Ro75
                                  Ro75 @Lucky_ESA last edited by

                                  @lucky_esa Welchen Code?

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    Lucky_ESA Developer Most Active @Ro75 last edited by Lucky_ESA

                                    @ro75 sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                                    @lucky_esa Welchen Code?

                                    Du musst meine eMail austauschen.

                                    var i, result, j, json;
                                    sendTo("imap.0", "getIMAPRequest", {
                                        name: "ppc@dbrp-mueller.de",
                                        max: 20,
                                        search: '["ALL", ["HEADER", "FROM", "github@luckyskills.de"]]',
                                        fetch:  JSON.parse('{"fetch": false, "seqno": [21954]}'),
                                        bodie: '{bodies: "", markSeen: false}',
                                        parse: true,
                                    }, async function (result) {
                                        if (!result) {
                                            console.log("No result found!");
                                            return;
                                        }
                                        for (var i_index in result) {
                                            i = result[i_index];
                                            var j_list = getAttr(i, 'body.attachments');
                                            for (var j_index in j_list) {
                                                j = j_list[j_index];
                                                json = JSON.stringify(getAttr(j, 'content'));
                                                // Dein Anhang als Buffer
                                                // console.log(getAttr(json, 'data'));
                                                console.log(getAttr(j, 'filename'));
                                                writeFile('vis.0', getAttr(j, 'filename'), getAttr(json, 'data'), function (error) {
                                                    if (error) {
                                                        console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') + '   Fehler:' + error, 'warn');
                                                    } else {
                                                        console.log('Datei ' + getAttr(j, 'filename') + ' wurde gespeichert');
                                                        // Hier an Telegram senden
                                                        delFile('vis.0', getAttr(j, 'filename'), function (error) {
                                                            if (!error)
                                                                 console.log('Datei ' + getAttr(j, 'filename') + ' gelöscht');
                                                        });
                                                    }
                                                });
                                            }
                                        }
                                    });
                                    
                                    
                                    Ro75 1 Reply Last reply Reply Quote 1
                                    • Ro75
                                      Ro75 @Lucky_ESA last edited by

                                      @lucky_esa 👍 perfekt. Jetzt habe ich aber auch eMails die keinen Anhang haben und ich würde gern das "html" auswerten. Wie komme ich da ran?

                                      L 1 Reply Last reply Reply Quote 0
                                      • L
                                        Lucky_ESA Developer Most Active @Ro75 last edited by

                                        @ro75 sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:

                                        @lucky_esa 👍 perfekt. Jetzt habe ich aber auch eMails die keinen Anhang haben und ich würde gern das "html" auswerten. Wie komme ich da ran?

                                        In die i Schleife. Kenne gerade den Key für html nicht.

                                            for (var i_index in result) {
                                                i = result[i_index];
                                                console.log(getAttr(i, 'body.texthtml'));
                                        
                                        Ro75 2 Replies Last reply Reply Quote 1
                                        • Ro75
                                          Ro75 @Lucky_ESA last edited by

                                          @lucky_esa 👍 👍 vielen Dank.

                                          1 Reply Last reply Reply Quote 0
                                          • Ro75
                                            Ro75 @Lucky_ESA last edited by

                                            @lucky_esa Ich bekomme nun für (im Moment sind es) 6 eMails Werte, leider ist es immer der selbe HTML-Wert. Was mache ich falsch?

                                                for (var i_index in result) {
                                                    i = result[i_index];
                                                    console.log(getAttr(i, 'body.html'));
                                                }
                                            
                                            
                                            L 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            693
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            406
                                            57319
                                            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