Email empfang

  • Hallo zusammen

    Mal eine Grundlegende Frage, hat schon einmal jemand eine Email vom SMTP-Server über ein Autoit-Script empfangen?

    Wenn ja kann mir jemand Ratschläge geben wie man das macht?

    Emails schicken über smtp Server ist nicht schwer, Empfangen vielleicht um so mehr?

    Würde gerne ein Postfach abfragen und die Mails die ankommen weiter als nur reine TEXT form weiterleiten, ohne das html form mit übernommen wird.

  • ehm.. ein Server eben. :) smtp im Unternehmen, kein öffentlicher.

    Ich würde gerne deine Frage beantworten aber ich versteh die frage nicht so richtig ->Postfach?

  • Mit welchem Client empfängst Du derzeit Mails?
    Falls Outlook, dann lässt sich das ziemlich einfach mit der OutlookEX UDF erledigen.

  • funkey die Antwort ist Exchange oO kann auch sein das ich falsch liege und wenn die Antwort nicht passt dann muss ich da in der IT nachfragen.

    weil mein Outlook zeigt mir nicht an über was er es empfängt ob pop3, imap...


    water

    ja mit Outlook wollte es aber wenn möglich Out tag halten.

    Es soll einen bestimmten email Account im Blick haben und es weiterleiten in die Zentrale (kein email programm), aber ein Programm wo die mail dann weiter automatisiert verarbeitet wird.

    da der Account auf mehreren Rechnern in Outlook zu finden ist soll es out tag bleiben.

    Wie gesagt wenn nicht anders möglich dann gerne auch so.

  • "Out tag"? Nie gehört. Worum geht's da?

  • keine Ahnung.. es war ein langer heißer tag xD sry ich weiß nicht warum ich das so geschrieben habe...


    ich meinte natürlich abgetrennt von Outlook ohne das Outlook im Hintergrund offen sein muss....

  • Outlook in einem AutoIt Skript verwenden ohne Outlook zu starten?
    Das gibt es nicht. Genauso wenig wie warme Eislutscher ;)

  • das habe ich nicht gesagt! :)


    ich sagte Emails empfangen ohne Outlook! nur per Skript, ich mein man kann ja auch Emails versenden ohne Outlook warum sollte das nicht auch per Skript gehen um welche zu empfangen.

    Einmal editiert, zuletzt von MojoeB (6. Juli 2022 um 02:28)

  • Möglichkeit 1 ist, du implementierst die Mail-Netzwerkprotokolle in AutoIt.
    Zum Abrufen von E-Mails wären dies POP3 oder IMAP.
    POP3 wird heute eher nicht mehr groß eingesetzt, da die Mails nach dem Abruf vom Server verschwunden sind.
    IMAP ist eher der aktuellere Standard.
    Das würde man wohl auch irgendwie implementiert bekommen (für AutoIt gibt es auch glaube eine hornsalte UDF).
    Problem hierbei wäre dann aber, dass das heutzutage nur transportverschlüsselt eingesetzt wird. Sprich: Du musst noch TLS/SSL implementieren.
    Und spätestens hier wäre dann mit AutoIt Schluss. Stattdessen müsstest du eher OpenSSL/LibreSSL mit einbinden oder per Kommandozeile steuern.

    Kurz: Alles in AutoIt wäre selbst mit High-End-Skills ein Mammutprojekt

    Möglichkeit 2: Einen kommandozeilenbasierten E-Mail-Client nehmen.
    Meines Wissens bringt OpenSSL hierzu alles mit.
    Du müsstest hierbei die Steuerung kommandozeilenbasiert in AutoIt implementieren.
    Klingt erstmal recht entspannt, kann sich aber im Detail ziemlich ausweiten, insbesondere wenn man das ganze fehlertolerant implementieren will.

    Möglichkeit 3: Outlook per COM steuern.
    Wenn es sowieso installiert ist, kann man es auch nutzen.
    Ähnlich wie Excel/Word usw. lässt sich auch dies unsichtbar im Hintergrund verwenden.
    Water ist da natürlich der richtige Ansprechpartner.

  • AspirinJunkie :

    danke für deine ausführliche Antwort.

    Ich habe bereits ein paar udfs getestet nachdem Googlen vom funkey seinem Vorschlag.

    Leider hat es nicht auf anhieb geklappt auch nicht mit privaten Mail Adressen, deshalb denke ich das dies etwas längere zeit in Anspruch nehmen wird.

    Vielleicht finden wir intern noch eine einfache Lösung falls nicht komm ich noch mal auf Water zurück. :)

  • Hallo,

    iIch würde vermuten, dass der Mailempfang im Standard zwischen Exchange und Outlook NICHT per IMAP erfolgt, sondern per ActiveSync. Das ist HTTPS basiert und damit für AutoIt außerhalb der machbaren Reichweite. Exchange bietet die Möglichkeit, das Postfach auch für IMAP freizuschalten. Je nach Sicherheitsbedarf der internen IT, könnte ich aber vermuten, dass dies nicht mal eben und ohne ausführlichen Grund freigegeben wird. Zumal dann auch die entsprechenden Firewallregeln gesetzt sein müssen.

  • Hallo MojoeB, wenn ihr Exchange einsetzt, müssen natürlich noch für das entsprechende Postfach Imap oder Pop3 freigeschalten werden.

    Wir haben bei uns früher mal das Tool "getmail.exe" per CMD genutzt, um Emails von POP3 Konten anzuholen und das Attachment zu extrahieren.

    Habe die exe mal gepackt und angehangen. Download auch über http://www.interlog.com/~tcharron/getmail.html

    Ob hier allerdings ssl verschlüsselt abgeholt werden kann, habe ich nicht geprüft. Intern sollte das kein Problem sein.

    Gruß gmmg

  • gmmg danke, aber das muss ich ausschließen weil es für unternehmen nicht Freeware ist.

    Die summe ich keine große, aber schauen wir mal ob wir das so hinbekommen.

    Gun-Food

    Ja Ich hab mir schon sowas gedacht das es über ActiveSync läuft wollte mich aber nicht blamieren X/ Weils nur eine Vermutung war und ich davor noch nicht viel davon gehört hatte.

    Müssten das dann aber dennoch nicht lösbar mit der Winhttp UDF sein oder? kann das kein https? Danke für die Erläuterung.

    water ich denke ich nehme deinen Lösung Vorschlag, habe mir auch schon die UDF angeschaut und etwas rumprobiert mit den Examples die dabei sind.
    Habe aber ehrlich gesagt noch nicht so ganz durchgeblickt. Werde es mir heute weiter anschauen und rumprobieren wenn ich gar nicht weiter komme melde ich mich hier noch vielleicht heute oder erst nach dem Wochenende.
    Deine UDF hat es verdient benutzt zu werden da steckt ne menge Arbeit drin so wie das aussieht top :thumbup::thumbup:.

  • Schön, dass Dir meine UDF gefällt. Bis auf 1-2 kleine Designfehler ist es auch meine bisher beste UDF :)

    Die erste Design-Entscheidung für Dein Skript:

    • Soll auf das NewMail Event reagiert werden (d.h. das Skript verarbeitet jede Mail, sobald sie hereinkommt) oder
    • soll das Skript regelmäßig die Inbox nach bestimmten Mails durchsuchen und diese bei Bedarf verarbeiten?
  • Ich habe zum testen nun erstmal eine Regel in Outlook verfasst die besagt das alle neuen Emails automatisch in einen weiteren Ordner kopiert werden.
    Nun wird in dem erstellten Ordner die Betreffzeilen ausgelesen, und dann die Betreffzeile weiter geschickt.
    Nachdem Versenden möchte ich nun wieder die kopierten Emails Löschen lassen, das habe ich bisher noch nicht rausgefunden wie das funktioniert.

    Hier ist mal mein bisheriger Code :


    Zu deiner Frage zurückzukommen, trifft Punkt 1 so ziemlich zu, bloß das die Mails dann aber im Posteingang unberührt bleiben müssen.

  • Das Beispielprogramm _OL_Example_NewMailEX_Event.au3 zeigt Dir, wie man auf das Event reagiert und neue Mails verarbeitet (der Event kann mehr als eine einzelne Mail umfassen).

    Zu Deiner Funktion fehler_: Du solltest FileOpen nur 1x aufrufen und dann ein Flag setzen. Beim nächsten Aufruf der Funktion prüftst Du das Flag, falls gesetzt kannst Du FileOpen aulassen.
    Außerdem solltest Du vor Ende des Skripts die Datei mit FileClose schließen, damit alle Daten geschrieben werden.

  • guten morgen Water,

    Ja du hast recht, habe ich geändert in der func fehler_,

    Das sieht stark aus: _OL_Example_NewMailEX_Event.au3

    wenn du mir nun noch verrätst wie ich die Posteingänge von dem dem anderem Exchange Konto die Benachrichtigung empfange, bei den anderen Posteingängen bekomme ich auch keine Windows Benachrichtigung angezeigt.

    Habe nun gestern ein fertiges Skript erstellt , aber Voraussetzung dazu ist die Mails erst in einen bestimmten Ordner kopieren zu lassen durch eine Regel und dann diesen Ordner zu überwachen mail nur mit betreff verschicken und im anschluss löschen.

    Nachteil dabei dies kann ich auch nur auf dem Hauptkonto ausführen lassen da ich für die anderen Posteingänge keine Regeln erstellen kann.

    Mit dieser Methode _OL_Example_NewMailEX_Event.au3 wäre es viel einfacher wenn ich jetzt noch die anderen Posteingänge auswählen könnte. :)

  • Für die Verwaltung anderer Postfächer verwendest Du _OL_Example_ItemAdd2_Event.au3