Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Emails empfangen.

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

      Hallo Forum,

      das Script hier ist genau das, was ich gesucht habe! Leider komme ich nicht mehr weiter und benötige Hilfe:
      Ich habe in der Instanz des Javascript-Adapters die folgenden npm-Pakete eingetragen:
      99fe0ef5-d197-4f1f-a86e-1a1870b14cc9-image.png
      Und dann ein Script angelegt, wie es hier im Thread zu finden ist:

      var mailobj = {val:
                      {
                          from:  "",
                          topic: "",
                          text: "",
                      }
                  };
      createState("Email.Reception",mailobj);
      createState("Email.from_address");
      createState("Email.from_name");
      createState("Email.mail_subject");
      createState("Email.mail_text");
      
      schedule("*/2 * * * *", function (obj) {
          var MailListener = require("mail-listener2");
          var mailListener = new MailListener({
              username: "meine Mailadresse",
              password: "mein Passwort",
              host: "mein Host",
              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: false, // 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: false}, // options to be passed to mailParser lib.
              attachments: false, // download attachments as they are encountered to the project directory
              attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments
          });
      
          mailListener.start(); // start listening
          mailListener.on("server:connected", function(){console.log("imapconconnected");});
          mailListener.on("server:disconnected", function(){console.log("imapDisconnected");});
          mailListener.on("error", function(err){console.log(err);});
          mailListener.on("mail", function(mail, seqno, attributes){
              log(mail.from[0].address);
              log(mail.from[0].name);
              log(mail.subject);
              log( mail.text);
      
              console.log('Mailabsender: '+mail.from[0].address);
              console.log('Absendername: '+mail.from[0].name);
              console.log('Betreff: '+mail.subject);
      
              var mailobj = {val:
                      {
                          from:  mail.from[0].name,
                          topic: mail.subject,
                          text:  mail.text
                      }
                  };
              setState("Email.Reception", mailobj);
              setState("Email.from_address", mail.from[0].address);
              setState("Email.from_name", mail.from[0].name);
              setState("Email.mail_subject", mail.subject);
              setState("Email.mail_text", mail.text);
       
          });
          mailListener.on("attachment", function(attachment){console.log(attachment.path);});
          setTimeout(function(){mailListener.stop();},20000);
      });  
      

      Das Script scheint grundsätzlich zu funktionieren, denn im Log-File erhalte ich die entsprechenden Meldungen:
      f74ca8b8-e49e-4d01-9720-6797b731c0da-image.png

      Allerdings werden weder die console.log-Anweisungen in der obigen Funktion: mailListener.on("mail", function(mail, seqn, attributes){... ausgegeben, noch die Datenpunkte mit Werten befüllt - was natürlich logisch ist, wenn die Funktion nicht ausgeführt wird.

      Ein Neustart von Adapter und Iobroker bringt leider nichts.

      Könnte es evtl. mit der folgenden Meldung zusammen hängen:
      c1657172-3709-4189-882d-66a8dc8987e3-image.png
      Was ist zu tun?

      Danke Euch vorab!

      S 1 Reply Last reply Reply Quote 0
      • S
        SirTom @SirTom last edited by

        So, wie es häufig zugeht: Wenn man jemand um Hilfe bittet, findet man das Problem oft doch selbst. Für alle die das gleiche Problem haben sollten:

        Es scheint wohl mit dem Mailserver zusammenzuhängen. Nachdem ich im Script unter searchFilter "Flagged" entfernt habe, funktioniert es nun:

         searchFilter: ["UNSEEN"], // the search filter being used after an IDLE notification has been retrieved
        
        1 Reply Last reply Reply Quote 0
        • C
          chhe last edited by chhe

          Hallo,

          ich konnte das Script erfolgreich installieren. Leider funktioniert die Option nicht, dass eingelesene Emails nicht als gelesen markiert werden.

          markSeen: false, // all fetched email will be marked as seen and not fetched next time
          

          Dennoch werden die Emails im Postfach durch das Script als gelesen markiert. Woran könnte das liegen?
          Bei dem Postfach handelt es sich um ein Apple iCloud Postfach.

          1 Reply Last reply Reply Quote 0
          • D
            Dragon last edited by

            Ich habe einen Fehler im Log:

            script.js.common.Automatisierung.ioBroker.Mail_listener: <= 'A1 NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)'
            

            Das Problem ist aber die Logindaten stimmen zu 100%

            hat jemand eine Idee?

            1 Reply Last reply Reply Quote 0
            • D
              Dragon last edited by

              Tja, was soll ich sagen. Es liegt an Gmail. Es ist nicht möglich dieses Skript mit Gmail zu nutzen. Ein anderer Anbieter und es funktioniert auf Anhieb...

              Danke trotzdem für die Hilfe.

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

                @dragon

                ich bin mitttlerweile auf nodered umgestiegen, um emails zu lesen - mail-listener funktioniert bei mir auch nicht mehr richtig

                D3ltoroxp 1 Reply Last reply Reply Quote 0
                • M
                  MCU @Dragon last edited by

                  @dragon Man kann auch mit Google gmail das Script nutzen. Man muss dann nur ein sogenanntes APP-Passwort nutzen. Mit dem normalen Google-Passwort klappt es nicht, da dort 2-Faktoren-Authentifizierung genutzt wird.

                  D 1 Reply Last reply Reply Quote 0
                  • D3ltoroxp
                    D3ltoroxp @liv-in-sky last edited by

                    @liv-in-sky Gibt es da Infos oder eine Anleitung, wie ich sowas mit Nodered umsetzte, Mails zu lesen. Ich würde hier ganz gern auf Mails von Teams Accounts hören, damit ich dann in der VIS angezeigt bekomme, das Lehrer geschrieben haben. Bei mehr als einem Kind wirds schon schwierig, ich will ja nicht ständig die Accounts switchen um zu sehen ob jemand was geschrieben hat.

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

                      @d3ltoroxp

                      habe das vor kurzem gemacht: https://forum.iobroker.net/post/859755

                      evtl kannst du das mal importieren (in nodered) und für dich angleichen - ich lese nur bestimmte absender aus und brauche die subjects der mails - welche dann in einem json landen und in ener tabelle in der vis angezeigt werden

                      [
                         {
                             "id": "d52ebcff53c14799",
                             "type": "switch",
                             "z": "5a6176b51ab86746",
                             "name": "filter Subjects",
                             "property": "topic",
                             "propertyType": "msg",
                             "rules": [
                                 {
                                     "t": "cont",
                                     "v": "Mister-xtra",
                                     "vt": "str"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 1,
                             "x": 380,
                             "y": 160,
                             "wires": [
                                 [
                                     "c841e936c5fb836e",
                                     "874f0070cd2c8aed"
                                 ]
                             ]
                         },
                         {
                             "id": "91776f473b1d5a94",
                             "type": "debug",
                             "z": "5a6176b51ab86746",
                             "name": "debug 2",
                             "active": false,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload.date",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 640,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "a301776e0b4ab440",
                             "type": "ioBroker out",
                             "z": "5a6176b51ab86746",
                             "name": "EMAILSSerien",
                             "topic": "0_userdata.0.CONTROL-OWN.LG-TV.EMAILSSerien",
                             "ack": "false",
                             "autoCreate": "false",
                             "stateName": "",
                             "role": "",
                             "stateUnit": "",
                             "stateMin": "",
                             "stateMax": "",
                             "x": 1380,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "c841e936c5fb836e",
                             "type": "change",
                             "z": "5a6176b51ab86746",
                             "name": "PayloadZuTopic",
                             "rules": [
                                 {
                                     "t": "move",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "payload.text",
                                     "tot": "msg"
                                 },
                                 {
                                     "t": "move",
                                     "p": "topic",
                                     "pt": "msg",
                                     "to": "payload.title",
                                     "tot": "msg"
                                 },
                                 {
                                     "t": "move",
                                     "p": "date",
                                     "pt": "msg",
                                     "to": "payload.date",
                                     "tot": "msg"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 580,
                             "y": 160,
                             "wires": [
                                 [
                                     "2577918675fe0576",
                                     "91776f473b1d5a94"
                                 ]
                             ]
                         },
                         {
                             "id": "fdd008106af609cd",
                             "type": "json",
                             "z": "5a6176b51ab86746",
                             "name": "",
                             "property": "payload",
                             "action": "str",
                             "pretty": true,
                             "x": 1470,
                             "y": 160,
                             "wires": [
                                 [
                                     "a301776e0b4ab440"
                                 ]
                             ]
                         },
                         {
                             "id": "1e178307f45b0ef9",
                             "type": "join",
                             "z": "5a6176b51ab86746",
                             "name": "",
                             "mode": "custom",
                             "build": "array",
                             "property": "payload",
                             "propertyType": "msg",
                             "key": "topic",
                             "joiner": "\\n",
                             "joinerType": "str",
                             "accumulate": false,
                             "timeout": "10",
                             "count": "",
                             "reduceRight": false,
                             "reduceExp": "",
                             "reduceInit": "",
                             "reduceInitType": "",
                             "reduceFixup": "",
                             "x": 1090,
                             "y": 160,
                             "wires": [
                                 [
                                     "507fb8bc44d94c4b",
                                     "9aa040b4c0ec620f"
                                 ]
                             ]
                         },
                         {
                             "id": "2577918675fe0576",
                             "type": "change",
                             "z": "5a6176b51ab86746",
                             "name": "KommaErsetzen",
                             "rules": [
                                 {
                                     "t": "change",
                                     "p": "payload.title",
                                     "pt": "msg",
                                     "from": ",",
                                     "fromt": "str",
                                     "to": "",
                                     "tot": "str"
                                 },
                                 {
                                     "t": "change",
                                     "p": "payload.title",
                                     "pt": "msg",
                                     "from": "Mister-xtra ",
                                     "fromt": "str",
                                     "to": "",
                                     "tot": "str"
                                 },
                                 {
                                     "t": "change",
                                     "p": "payload.title",
                                     "pt": "msg",
                                     "from": "ist online verfügbar.",
                                     "fromt": "str",
                                     "to": "",
                                     "tot": "str"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 770,
                             "y": 160,
                             "wires": [
                                 [
                                     "6001653e634e71a1"
                                 ]
                             ]
                         },
                         {
                             "id": "874f0070cd2c8aed",
                             "type": "debug",
                             "z": "5a6176b51ab86746",
                             "name": "debug 3",
                             "active": false,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "true",
                             "targetType": "full",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 420,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "507fb8bc44d94c4b",
                             "type": "function",
                             "z": "5a6176b51ab86746",
                             "name": "function 1",
                             "func": "var x = msg.payload;\nmsg.payload=x.slice().reverse()\n\nreturn msg;",
                             "outputs": 1,
                             "noerr": 0,
                             "initialize": "",
                             "finalize": "",
                             "libs": [],
                             "x": 1320,
                             "y": 160,
                             "wires": [
                                 [
                                     "fdd008106af609cd"
                                 ]
                             ]
                         },
                         {
                             "id": "9aa040b4c0ec620f",
                             "type": "debug",
                             "z": "5a6176b51ab86746",
                             "name": "debug 4",
                             "active": false,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "true",
                             "targetType": "full",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 1160,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "6001653e634e71a1",
                             "type": "function",
                             "z": "5a6176b51ab86746",
                             "name": "function 4",
                             "func": "\n\n\nvar xx = String(msg.payload.date);\n\nmsg.payload.date = Date.parse(xx);\n\n\nreturn msg;",
                             "outputs": 1,
                             "noerr": 0,
                             "initialize": "",
                             "finalize": "",
                             "libs": [],
                             "x": 920,
                             "y": 160,
                             "wires": [
                                 [
                                     "1e178307f45b0ef9"
                                 ]
                             ]
                         },
                         {
                             "id": "a6593e1122fcf4d2",
                             "type": "e-mail in",
                             "z": "5a6176b51ab86746",
                             "name": "NoPersonalMails",
                             "protocol": "IMAP",
                             "server": "imap.1und1.de",
                             "useSSL": true,
                             "autotls": "never",
                             "port": "993",
                             "box": "INBOX",
                             "disposition": "None",
                             "criteria": "ALL",
                             "repeat": "600",
                             "fetch": "auto",
                             "inputs": 0,
                             "credentials": {
                                 "userid": "",
                                 "password": ""
                             },
                             "x": 180,
                             "y": 180,
                             "wires": [
                                 [
                                     "d52ebcff53c14799"
                                 ]
                             ]
                         }
                      ]
                      

                      Image 156.png

                      1 Reply Last reply Reply Quote 1
                      • D
                        Dragon @MCU last edited by

                        @mcu Danke für die Info. mal schauen ob ich dazu was finde...

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MCU @Dragon last edited by

                          @dragon
                          https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/module/calendar#google-account-kalender

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            Dragon @MCU last edited by

                            @mcu super! vielen dank!

                            1 Reply Last reply Reply Quote 0
                            • M
                              Masl last edited by Masl

                              Kann mir jemand damit weiterhelfen???
                              EMails werden zwar abgerufen und im Datenpunkt angezeigt, aber es kommt zu diesem Error.
                              Habe versucht die NPM Module direkt zu installieren oder über die Java Instanz. Bei beiden Varianten ist es das gleiche Problem.

                              host.iobroker
                              	2022-10-22 10:40:34.202	error	instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
                              host.iobroker
                              	2022-10-22 10:40:34.202	error	Caught by controller[1]: at processImmediate (node:internal/timers:466:21)
                              host.iobroker
                              	2022-10-22 10:40:34.202	error	Caught by controller[1]: at MailParser._process (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:227:22)
                              host.iobroker
                              	2022-10-22 10:40:34.202	error	Caught by controller[1]: at MailParser._processStateHeader (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:309:61)
                              host.iobroker
                              	2022-10-22 10:40:34.201	error	Caught by controller[1]: at MailParser._generateFileName (/opt/iobroker/node_modules/iobroker.javascript/node_modules/mailparser/lib/mailparser.js:1407:27)
                              host.iobroker
                              	2022-10-22 10:40:34.201	error	Caught by controller[1]: TypeError: mime.extension is not a function
                              javascript.0
                              	2022-10-22 10:40:34.124	error	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 (node:internal/timers:466:21)
                              javascript.0
                              	2022-10-22 10:40:34.124	error	Error: mime.extension is not a function
                              javascript.0
                              	2022-10-22 10:40:34.124	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                              
                              Glasfaser 1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @Masl last edited by

                                @masl sagte in Emails empfangen.:

                                Kann mir jemand damit weiterhelfen???

                                hier stehen auch Lösungen dazu drin :

                                https://forum.iobroker.net/topic/55923/javascript-instanz-wird-von-maillistener-getötet?

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Masl last edited by Masl

                                  Es hat tatsächlich nun doch funktioniert. Hab mich nochmal ein wenig durchgelesen.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    Masl last edited by

                                    @masl said in Emails empfangen.:

                                    Es hat tatsächlich nun doch funktioniert. Hab mich nochmal ein wenig durchgelesen.

                                    Hab leider doch nicht hinbekommen. Es kommt zu Fehlermeldungen. Wenn jemand noch eine andere Idee hätte wie man das Postfach überwachen kann, dann gerne melden

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

                                      @masl evtl
                                      https://forum.iobroker.net/post/859755

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        theGrinch last edited by theGrinch

                                        edit: Hat sich irgendwie von selbst gefixt.

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

                                          Hallo zusammen, besteht die Interesse an einen Adapter und was müsste dieser alles können? Habe bereits angefangen und bei Bedarf würde ich diesen zur Verfügung stellen.

                                          Gruß//Lucky

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

                                            @lucky_esa das ist eine tolle Idee

                                            • Unterordner abfragen wäre gut
                                            • Ergebnisse als Json
                                            • nur lesen, als gelesen markieren oder auch gelesene Löschen
                                            • nur neue/ungelesene holen oder alle holen

                                            Ist mir so spontan eingefallen

                                            Hat du schon einen Plan, was du alles machen willst

                                            Mach doch einen neuen Threads auf und reserviere dir die ersten beiden Einträge . Könnte mir vorstellen, das einige drauf warten

                                            L 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            873
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            31
                                            119
                                            18048
                                            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