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. E-Mails werden nach gewisser Zeit in Spam verschoben

    in Microsoft Outlook Hilfe
    E-Mails werden nach gewisser Zeit in Spam verschoben: Hallo Zusammen, ich erhalte E-Mails die zu Beginn in meinem Posteingang zu sehen sind und automatisch nach einer gewissen Zeit (ca. 15 min.) in meinem Spamordner verschoben werden. Es ist keine...
  3. Mails in Web App anzeigen

    in Microsoft Outlook Hilfe
    Mails in Web App anzeigen: Hallo liebe Community, möglich, dass das Problem sehr banal ist, aber ich habe leider keine Lösung gefunden. Nachdem der Start mit Outlook 365 sehr holprig war (ich musste den Laptop neu...
  4. Outlook 365 - Termin-Erinnerung per E-Mail an externe E-Mail, bei anstehendem Termin in Outlook 365

    in Microsoft Outlook Hilfe
    Outlook 365 - Termin-Erinnerung per E-Mail an externe E-Mail, bei anstehendem Termin in Outlook 365: Hallo aus Norddeutschland, unsere Version Outlook 365 ->> auf PC´s windows 10-Pro ( Stand 12.05.21 - 13:00 Uhr ) [ATTACH] Wir möchten eine Termin-Erinnerung per E-Mail an externe...
  5. Outlook 365: Plötzlich verschwinden Inhalte aller Mails

    in Microsoft Outlook Hilfe
    Outlook 365: Plötzlich verschwinden Inhalte aller Mails: Liebes Forum, sowas hatte ich noch nicht: Gestern habe ich eine Mail geschrieben, diese für die spätere Weiterbearbeitung gespeichert. Nach dem Neustart des Rechners wollte ich die Mail...
  6. Outlook 2016

    in Microsoft Outlook Hilfe
    Outlook 2016: Ich benutze Windows 10 und Microsoft Office Home and Business 2016 mit Word 2016, Excel 2016, PowerPoint 2016, OneNote 2016 und Outlook 2016. 64-Bit-Version Ich möchte in Outlook eingehende...
  7. Outlook 2013 - Mail als erledigt kennzeichnen

    in Microsoft Outlook Hilfe
    Outlook 2013 - Mail als erledigt kennzeichnen: Zuerst einmal ein freundliches hallo an alle. Ich bin der Neue und so wie es scheint, muß ich mich gleich als DAU outen. In der Forensuche finde ich eine ähnliche Frage (Peter), aber leider keine...
  8. E-Mails verschwinden nach ein paar Minuten

    in Microsoft Outlook Hilfe
    E-Mails verschwinden nach ein paar Minuten: Nachdem eine Email im Posteingang angekommen ist, verschwindet sie nach ein paar Minuten wieder. Sie ist nirgendwo aufzufinden. In keinem anderen Ordner. Dadurch gehen unzählige Mails verloren....
  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