NEWS
Emails empfangen.
-
poste das ganze bitte in code tags - ist lesbarer
zum thema - versuche mal diese variablen so zu nutzen:
var myRegex=""; // erstes Regex für Subject - "" für leer var myRegexErsetzen=""; // erstes Regex Subject Ersetzen mit - "" für leer var myRegex2=""; // zweites Regex für Subject - "" für leer var myRegex2Ersetzen=""; // zweites Regex Subject Ersetzen mit - "" für leer
-
-
-
@liv-in-sky
kannst du mir beim blockly auch helfen ?
wenn neue mail da ist hätt ich gerne anruf über telegramm mit x versuchen ausser ich quittiere vorher
derzeitiger versuch klappt nicht .
blockly wird nicht gestartet bei neuer mail
wenns stoppe und starte dann klappts mit anruf.
quittieren wenn den anruf empfangen hab (derzeit button in VIS) schluckt er mir so auch nicht.
-
erstmal zur theorie
- wenn du einen trigger nutzt, mußt du die anderen bausteine IN den trigger setzen
-
ein trigger ist immer außen - daher trigger soll nicht in der "wiederhole 2 mal" sein !!
-
wie willst du den ablauf, wenn innerhalb von 180 sek nochmal eine mail kommt ? soll das immer ausgeführt werden ?
-
für was benötigst du den datenpunkt neueStörungsmail - für dieses script ist er nicht nötig - da der trigger ja schon da ist. ich habe ihn mal reingenommen - damit könntest du auch das script sperren, wenn innerhalb der 180 sek noch eine mail kommt
damit wird der trigger ausgeführt 180 sek gewartet und nochmal ausgeführt - jedesmal, wenn die anzahl der anrufe größer wird- ich habe das nicht ausgefüllt - nur die blockly's eingesetzt
-
Wollte das grad testen
Danke für s Anleitenleider bekomm ich im Javascript jetzt angezeigt
e
19:06:00.723 info javascript.0 (2602) script.js.common.störungsmailabruf.mailundtabelle: {'type':'no','textCode':'ALERT','source':'authentication'}hab aber nüscht geändert gegenüber mittag
Ideen ? -
@salzer-michael sagte in Emails empfangen.:
Wollte das grad testen
Danke für s Anleitenleider bekomm ich im Javascript jetzt angezeigt
e
19:06:00.723 info javascript.0 (2602) script.js.common.störungsmailabruf.mailundtabelle: {'type':'no','textCode':'ALERT','source':'authentication'}hab aber nüscht geändert gegenüber mittag
Ideen ?Achso bekomm dadurch jetzt keine mails mehr angezeigt in vis
-
die tabelle braucht keine authentication - irgendwas mit deinem email passwort oder user stimmt wohl nicht mehr
-
hab neue e-mail angelegt
gmail machte problemewas sollte eigentlich bei dp "reception" angelegt werden ?
der bleibt mir leer ?bis auf meine alarmquittierung klappt das so weit.
bekomm derzeit noch nit hin das wenn "neue mail " da ist und die anrufe gestartet werden das mit nem quittieren die anrufe bende.für jeden denkanstoß dankbar wäre .
oder nach was könnt suchen im forum ? -
reception ist ein überbleibsel von einem anderen script - wird nicht aktualisiert !
was meinst du mit anrufe quittieren ? wo bzw wie willst du quittieren. bei einem neuen mail, kommt es zu einem anruf. den kannst du annehmen oder "wegdrücken" - dann kommt doch erst wieder ein anruf, wenn ein neues mail da ist
-
@liv-in-sky
hab ne schleife drinnen
neues mail
anruf und nachricht per telegram
max 10 wiederholungen wenn in der nacht nicht höre
quittieren wenns gehört wurde damit nicht noch x mal angerufen wirdso sollts funktionieren
Vielen lieben Dank für die Unterstützung
-
jetzt verstehe ich, du möchtest den call mit einem datenpunkt bestätigen (also von hand) - das problem bei dem blockly baustein mit dem anrufen ist, dass man kein feedback bekommt, ob der anruf angenommen wurde.
mit diesem baustein kann man auch direkt den apibot nutzen und bekommt dann ein feedback
damit kann man dann einfach ein script machen, welches automatisch die call-antwort erkennt. das script kann wahrscheinlich noch verbessert werden
- es versucht 10 mal anzurufen, wenn der call nicht beanrwortet wird
- wird der call angenommen oder "rejected" wird das script nicht weiter anrufen
- es prüft, dass zwischen den anrufen mind. 65 sek sind, da der bot sonst nicht anruft
script für import:
-
wenn du das script importierst,
- mußt du noch den datenpunkt für die mailanzahl definieren
- deinen usernamen im request blockly eingeben
- und definieren, was der anruf sagen soll
-
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:
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:
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:
Was ist zu tun?Danke Euch vorab!
-
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
-
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. -
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?
-
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.
-
ich bin mitttlerweile auf nodered umgestiegen, um emails zu lesen - mail-listener funktioniert bei mir auch nicht mehr richtig
-
@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.