Office: (Office 2016) E-Mail über PowerShell

Helfe beim Thema E-Mail über PowerShell in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Schönen guten Tag in die Runde, ich sitze über einem Problem, bei dem ich einfach nicht weiterkomme und auch so gar keinen Ansatz habe. Folgende... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von dan1977.77, 11. Februar 2021.

  1. E-Mail über PowerShell


    Schönen guten Tag in die Runde,
    ich sitze über einem Problem, bei dem ich einfach nicht weiterkomme und auch so gar keinen Ansatz habe.

    Folgende Situation:
    Ich möchte gerne via VBA aus Access heraus, eine E-Mail über PowerShell versenden.

    Hierfür steht folgendes Skript unter PowerShell zur Verfügung:

    Code:
    Ein Versand der Anhänge über Outlook ect. ist Firmentechnisch leider nicht möglich. Es soll über PowerShell funktionieren. Das Skript an sich funktioniert in PowerShell tadellos.

    1. Gibt es die Möglichkeit, aus Access heraus via VBA, PowerShell zu aktivieren, den Code dort zu übergeben und so eine E-Mail zu versenden?

    2. Falls 1. Zutrifft, ist es dann möglich, unterschiedliche E-Mailadressen als Variable zu übergeben? (Es gibt unterschiedliche Empfänger, diese werden über einen String in Access durch Anwählen der Benutzer zusammengestellt.)

    Ich hoffe ich konnte mein Problem ein wenig verdeutlichen.

    Vielleicht hat ja schon einmal jemand ein gleiches Problem gehabt, falls es überhaupt realisierbar ist.

    Vielen Dank im Voraus
    Danny

    :)
     
    dan1977.77, 11. Februar 2021
    #1
  2. Calling a Powershell Script from VBA in Access

    1) also ja
    2) Falls man keine anderen Möglichkeiten findet: Das Script ist vor Ausführung nur etwas Plaintext. Den Text könnte man somit mit üblichen Stringverarbeitungen ändern im eigenen Sinne.
     
  3. Du kannst Befehlszeilenargumente an das Script übergeben. Natürlich musst du dafür das Script anpassen, dass es nicht mehr hardcodierte Werte verwendet, sondern die übergebenen Argumente.
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
  4. E-Mail über PowerShell

    Hallo Eberhard, hallo sonic8,
    vielen Dank für Euere Unterstützung.

    1. DerTipp hat teilweise funktioniert.
    Mit diesem Code:
    Code:
    funktioniert es super.


    Mit diesem Code:
    Code:
    funktioniert es leider nicht.

    Bei ersterem Code läuft alles super. Nach der Eingabe des Benutzers und des Passwortes, läuft alles durch und die Mail kommt auch an.

    Bei zweiterem Code, wird Benutzername und Passwort automatisch eingetragen. PowerShell öffnet sich zwar ganz kurz, aber es kommt keine Mail an. Stimmt hier evtl. etwas im Code nicht, oder könnte es auch am Anhang liegen?


    2. Wo und wie muss denn der String dann im Script angepasst werden? Bei mir wird er in Access in einer Variablen erstellt und gespeichert. Wie bekomme ich den String dann in das Scrip implementiert?

    Vielen Dank für Euere Bemühungen,
    Grüße Danny
     
    dan1977.77, 13. Februar 2021
    #4
  5. Du könntest in der letzten Zeile ein Read-Host "Press AnyKey..." einfügen und schauen ob da Fehlermeldungen ausgegeben werden.
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    stendate, 13. Februar 2021
    #5
  6. Hallo stendate,
    vielen Dank für Deine Idee. Es liegt wohl an folgenden Zeilen...

    Code:
    ...wenn ich diese Zeilen aus kommentiere, funktioniert der Code. Leider ist es so nicht möglich, mehrere Zeilen als Text in der E-Mail einzufügen.
    Gibt es hierfür noch eine andere Möglichkeit?

    Hast Du evtl. auch noch einen Tipp, wie ich wo den String im Script anpassen muss? Bei mir wird er in Access in einer Variablen erstellt und gespeichert. Wie bekomme ich den String dann in das Scrip implementiert?

    Vielen Dank für die Unterstützung,
    Grüße Danny
     
    dan1977.77, 13. Februar 2021
    #6
  7. Der Code sieht bis auf die "Gänsefüßchen" eingentlich gut aus. Prüfe bitte, dass das richtige Anführungszeichen "" und keine “” sind.

    Da du dich für eine HTML-Email entschieden hast, wird die nächste Zeile durch <br /> eingeleitet. Wenn du richtige Zeilenumbrüche haben möchtest, musst du diese deinem String auch hinzufügen:

    Code:
    Ich habe noch nicht verstanden was du "in Access in einer Variablen" erstellt hast. Vllt. zeigst du den ensprechenden Code-Ausschnitt noch her...
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    stendate, 13. Februar 2021
    #7
  8. E-Mail über PowerShell

    Okay ich denke ich habe es schlecht erklärt.
    Also z.B. müssen $To = "******@gmx.de ", $Attachment = "C:UserStatistikStunden-Statistik 05 2019.pdf", $Subject = "Anhang versenden..." und auch $Body = „……“ aus Service.ps1 jeweils variabel angepasst werden.

    So z.B. mit strTo = „ABC…“, strAttachment = "C:UserStatistikDEF.pdf", strSubject = „GHI…“ und auch strBody = „NEUE ZEILE…“.

    Diese Variablen werden durch unterschiedliche Benutzer in Access als String gespeichert, und sollen dann im Script Service.ps1 Anwendung finden.
    Es gibt auch die Situation, in der 2 und mehr Anhänge versendet werden müssen.

    Daher müsste mein Script Service.ps1, welches über die Befehlszeile „runSendreports = Shell("Powershell.exe -executionpolicy bypass C:UserTaskPSservice.ps1") „ die E-Mail versendet, variabel angepasst werden.

    Nun weiß ich leider nicht, wie diese Anpassung aussehen müsste, bzw. wie ich die str-Variablen aus Access in das Scrip Service.ps1 schreiben kann !?

    Ich hoffe ich konnte die Beschreibung etwas verständlicher Darstellen, als bisher.
     
    dan1977.77, 13. Februar 2021
    #8
  9. Hallo,

    die Lösung ist die, die sonic8 bereits angesprochen hat.

    Im VBA übergibst du die Variablen als CommandLineArguments durch Leerzeichen getrennt an den Shell-Aufruf:

    Code:
    Im Code bitte / mit Backslash ersetzen.

    Auf der Powershell-Seite, müssen die Argumente in einem Param-Block deklariert werden:

    Code:
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    stendate, 14. Februar 2021
    #9
  10. Das würde aber erfordern, dass man sich mit der Dokumentation beschäftigt.
    Das willst du doch nicht wirklich von Access Programmierern erwarten oder .*grins
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    markusxy, 14. Februar 2021
    #10
  11. Vielen Dank für die Unterstützung. Die Übergabe der Parameter scheint zu funktionieren. Jedenfalls werden in dem blauen PowerShell-Fenster nach kurzem Öffnen die Beiden übergebenen Parameter (mailTo: … und MailFrom: …) angezeigt.

    Wie aber bringe ich nun die Parameter in PowerShell zum Laufen?
    Da in meinem Script die Empfängeradresse als $To und die Versender Adresse $From benannt werden, habe ich die Parameter in PowerShell so angepasst.
    Code:
    Leider wird die E-Mail immer noch mit dem ursprünglichen Adressen versendet:
    Code:
    Wie muss denn die Anpassung im Script vorgenommen werden?
     
    dan1977.77, 14. Februar 2021
    #11
  12. Ich habe den Fehler gefunden. Es lag an einem falschen Passwort und einer falsch geschriebenen Variable. SORRY.

    Vielen Dank an alle für die Unterstützung,

    Grüße Danny
     
    dan1977.77, 14. Februar 2021
    #12
  13. E-Mail über PowerShell

    Schönen guten Abend,
    leider funktioniert doch noch nicht alles. Bei der Übergabe eines Pfades für einen Anhang, wird der Parameter mit dem Pfad nicht übergeben.

    In Access sieht der Code folgendermaßen aus:
    Code:
    ( / = Backslash)

    Nach Ausführung wird kurz ein blaues Fenster angezeigt, jedoch wird keine Mail versendet. Im Fenster selbst wird kurz der Parameter von strUeberschrift, MailTo und strAnhang angezeigt.

    In PowerShell sieht das Skript wie folgt aus:
    Code:
    Wenn ich den Anhang (strAnhang / $strAnhang) weg lasse (in Access wie auch in PowerShell) und nur die Beiden Parameter strUeberschrift und mailTo übergebe, wird die E-Mail versendet.

    Muss der Pfad "C:/user/Statistik/Stunden-Statistik 05 2019.pdf" in einer anderen Variable als String oder Variant gespeichert und übergeben werden? Oder gibt es für Pfade eine andere "Form" als in Anführungszeichen?

    Kann mir bitte jemand auf die Sprünge helfen, was ich noch falsch mache?

    Viele Grüße Danny
     
    dan1977.77, 16. Februar 2021
    #13
  14. Hallo Danny,

    teste mal einen Anhang mit einem Pfad und Dateinamen ohne Leerzeichen.
    Wenn das hilft, dann versuche folgende Änderung im Shell-Aufruf:
    Code:
     
    Frank200, 16. Februar 2021
    #14
  15. Hallo Frank,
    vielen Dank für Deine Unterstützung. Wie Du bereits vermutet hast, wurde der Pfad ohne Leerstellen richtig übergeben und auch versendet.

    Dann habe ich, nach Deinen Vorschlag, den Shell-Aufruf geändert. Leider hat es diesmal die E-Mail wieder nicht versendet.

    Nach dem Einfügen von Hochkommas, klappt es nun.
    Code:
    Dankeschön an alle,

    Grüße Danny
     
    dan1977.77, 17. Februar 2021
    #15
Thema:

E-Mail über PowerShell

Die Seite wird geladen...
  1. E-Mail über PowerShell - Similar Threads - Mail PowerShell

  2. Neues E-Mail bearbeiten

    in Microsoft Outlook Hilfe
    Neues E-Mail bearbeiten: Office 365 Outlook 2024 Neues E-Mail bearbeiten Neues E-Mail aufrufen, im Formular: Nach drücken von einfügen möchte ich die Symbolleiste für den Schnellzugriff erweitern, und zwar auf...
  3. Junk-E-Mail nach MaxMustermann filtern

    in Microsoft Outlook Hilfe
    Junk-E-Mail nach MaxMustermann filtern: Hallo liebe Forum Gemeinde, Ich möchte gerne Mails automatisch in den Junk-E-Mailordner verschieben die in der Adresszeile vom Absender MaxMustermann enthält. ZB....
  4. Neues Outlook: Mail-Eingänge in Posteingang Favoriten

    in Microsoft Outlook Hilfe
    Neues Outlook: Mail-Eingänge in Posteingang Favoriten: Wie kann ich die Maileingänge meiner verschiedenen Mailkonten - wie aus dem "alten" Outlook gewohnt - im Posteingang von "Favoriten" zusammenfassen? Vielen Dank für Hilfe und...
  5. Externe Mails mit bedingter Formatierung farbig hervorheben

    in Microsoft Outlook Hilfe
    Externe Mails mit bedingter Formatierung farbig hervorheben: Hallo zusammen! Ich möchte externe Mails (also Mails von Versendern, die nicht von der Domain @geanvas.com kommen) in meinem Posteingang farbig hervorheben. Dazu habe ich in der bedingten...
  6. emails per vba mit eigenem Ordner speichern

    in Microsoft Outlook Hilfe
    emails per vba mit eigenem Ordner speichern: Hallo Forumgemeinde! Bin neu hier und hoffe das ihr mir bei meinem Vorhaben behilflich sein könnt. Ich möchte mit beiliegend gefundenem VBA-Code (hoffe, dass ich diesen hier überhaupt hochladen...
  7. IMAP-Mails nicht im Posteingang von "Meine Outlook-Datendatei"...

    in Microsoft Outlook Hilfe
    IMAP-Mails nicht im Posteingang von "Meine Outlook-Datendatei"...: Ich habe gerade eben ein neues System (Windows 11 HP mit Office 365 und Outlook) aufgesetzt. Im Outlook habe ich 3 Mailkonten definiert, 2 x POP, 1 x IMAP (siehe Datei). Entgegen mehrerer früherer...
  8. Alle E-Mails immer gekennzeichnet

    in Microsoft Outlook Hilfe
    Alle E-Mails immer gekennzeichnet: Hallo, ich habe bei einem Exchange Online Postfach das Problem, dass immer alle E-Mails im Posteingang mit dem Fähnchen gekennzeichnet sind und die komplette Zeile der E-Mail gelb hinterlegt ist....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden