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. Outlook Mails im Ordner Speichern wenn Name schon vorhanden ist automatisch mit Zahl ergänzen

    in Microsoft Outlook Hilfe
    Outlook Mails im Ordner Speichern wenn Name schon vorhanden ist automatisch mit Zahl ergänzen: Hallo, liebe Profis wir ziehen öfter einmal Emails aus Outlook direkt in einen Kunden Ordner. Manchmal kann es sein das diese Datei schon existiert der Inhalt aber ein anderer ist. Gibt es eine...
  3. Zwei Mails gehen raus. Soll nur eine

    in Microsoft Excel Hilfe
    Zwei Mails gehen raus. Soll nur eine: Hallo Zusammen, die Datei im Anhang soll eine Email versenden wenn der Wert in Zelle G2 höher wird als der in Zelle G3. Das funktiooniert aus soweit. Leider sendet Outlook immer zwei mal die Mail...
  4. E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.

    in Microsoft Excel Hilfe
    E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.: Diese E-Mail Automatisierung hat bereits Funktioniert nur seit heute kann ich maximal zwei E-Mails versenden. VBA Code: Sub Senden() Dim ol As Outlook.Application Dim olm As Outlook.MailItem...
  5. E-Mail-Vorlage im Menüband/Registerkarte

    in Microsoft Outlook Hilfe
    E-Mail-Vorlage im Menüband/Registerkarte: Hallo zusammen, gibt es eine Möglichkeite eine E-Mail als Vorlage zu speichern und diese dann im Menüband/Registerkarte auf eine Schaltfläche u legen? Wenn die Schalfläce dann geklickt wird, soll...
  6. Outlook beim Hinzufügen falsche Mail

    in Microsoft Outlook Hilfe
    Outlook beim Hinzufügen falsche Mail: Hallo, ich habe vor einiger Zeit eine neue Mail Adresse erstellt, welche ich als meine Haupt Email-Adresse verwende. Sobald ich diese jedoch in Outlook hinzufüge, wird meine alte Email Adresse...
  7. Outlook 2019 - Kalenderproblem mit mehreren Mail-Adressen

    in Microsoft Outlook Hilfe
    Outlook 2019 - Kalenderproblem mit mehreren Mail-Adressen: Hallo, ich benutze Outlook von Office 2019. Dort habe ich eine Gmail-Adresse und eine weitere E-mail-Adresse über Microsoft Exchange angemeldet. Wenn ich Termine an die Gmail-Adresse gesendet...
  8. E-Mail Funktion

    in Microsoft Access Hilfe
    E-Mail Funktion: Hallo zusammen, ich habe ein Hauptformular mit 3 Unterformularen. In zwei Unterformularen (eines ist ein Endlosformular) habe ich jeweils eine Schaltfläche und im Textfeld daneben eine...
  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