Senden Sie E-Mails von Powershell mit Outlook - Wie Man

Senden Sie E-Mails von Powershell mit Outlook

Microsoft Outlook verfügt über eine umfangreiche API für den programmgesteuerten Zugriff. Wir können ein Windows-COM-Objekt erstellen und mit E-Mails von C #, VBA oder Powershell arbeiten. In diesem Lernprogramm wird das Senden von E-Mails mit einigen Zeilen Powershell-Code veranschaulicht.

7 Schritte insgesamt

Schritt 1: Erstellen Sie eine Powershell-Datei

Powershell ist eine Skriptumgebung für Microsoft Windows. Skripte werden als Nur-Text-Dateien mit der Erweiterung .ps gespeichert. Sie können eine Datei in Windows Powershell ISE oder einem Texteditor erstellen.

Schritt 2: Erstellen Sie ein COM-Objekt

COM ist ein Microsoft-System zum Erstellen von binären Softwarekomponenten, die miteinander interagieren können. Wir erstellen ein COM-Objekt in Powershell, um mit Outlook zu kommunizieren.

Objekten können Eigenschaften (Einstellungen), Ereignisse (Ereignisse) und Methoden (Aktionen) zugeordnet sein. Methoden werden nach dem Befehl mit '()' bezeichnet.

Viele Programmiersprachen verwenden die Punktnotation, um eine Eltern-Kind-Beziehung anzuzeigen. "Outlook.Application" bezeichnet das zu Outlook gehörende Anwendungsobjekt.

#In Powershell bezeichnet '$' eine Variable, '#' ist ein Kommentar

Fügen Sie diese Zeile Ihrer .ps-Datei hinzu:

$ Outlook = New-Object -ComObject Outlook.Application

Schritt 3: Erstellen Sie ein neues Outlook MailItem

Da wir mit Mail arbeiten, möchten wir ein neues MailItem-Objekt erstellen. Outlook verfügt über andere Objekttypen für Termine, Kontakte, Aufgaben usw.

Die Zahl in Klammern ist erforderlich und teilt Outlook mit, welches Objekt erstellt werden soll.

https://msdn.microsoft.com/de-de/VBA/Outlook-VBA/articles/olitemtype-enumeration-outlook

Fügen Sie diese Zeile Ihrer Datei hinzu:

$ Mail = $ Outlook.CreateItem (0)

Schritt 4: Eigenschaften hinzufügen

MailItem verfügt über mehrere Eigenschaften, die in diesem Beispiel hilfreich sein können.

https://msdn.microsoft.com/de-de/vba/outlook-vba/articles/mailitem-object-outlook

Fügen Sie Ihrer .ps-Datei die folgenden Zeilen hinzu (unter Verwendung einer gültigen .To-Adresse):

$ Mail.To = "[email protected]"
$ Mail.Subject = "Betreff"
$ Mail.Body = "Testen"

Schritt 5: Mail senden

Wir verwenden eine MailItem-Methode, um unsere Nachricht zu senden.

Fügen Sie die folgende Zeile hinzu:

$ Mail.Send ()

Schritt 6: Beenden und bereinigen

Wir können Outlook zum Beenden auffordern und wir möchten unser COM-Objekt freigeben, wenn der Speicherplatz freigegeben ist.

Fügen Sie diese Zeilen hinzu:

$ Outlook.Quit ()
[System.Runtime.Interopservices.Marshal] :: ReleaseComObject ($ Outlook) | Out-Null

Schritt 7: Zusammenfassung

So erstellt unser fertiges Skript ein COM-Objekt für die Kommunikation mit Outlook, erstellt ein MailItem-Outlook-Objekt, sendet eine E-Mail-Nachricht und wird beendet. (Denken Sie daran, '#' ist ein Kommentar und wird von Powershell ignoriert.)

#Erstellen Sie ein COM-Objekt mit dem Namen Outlook
$ Outlook = New-Object -ComObject Outlook.Application
#create Outlook MailItem namens Mail mit der Methode CreateItem ()
$ Mail = $ Outlook.CreateItem (0)
Fügen Sie die gewünschten Eigenschaften hinzu
$ Mail.To = "[email protected]"
$ Mail.Subject = "Betreff"
$ Mail.Body = "Testen"
#Nachricht senden
$ Mail.Send ()
#bitte und bereinigen
$ Outlook.Quit ()
[System.Runtime.Interopservices.Marshal] :: ReleaseComObject ($ Outlook) | Out-Null

Mit Powershell können wir E-Mails mit ein paar Zeilen Code über Outlook versenden. Die gleichen Methoden und Eigenschaften sind für eine Sprache wie VBA gültig, sodass Sie auch ein kurzes Skript schreiben können, um E-Mails mithilfe von Outlook aus Excel zu senden.