drausi
Goto Top

Mit Powershell Email versenden, Gmail oder outlook.com

Hallo zusammen,

ich schaffe es irgendwie nicht, das ich mittels powershell eine Email versenden lasse.
Ich habe auch schon einiges versuchte, unter anderem so:

$body = "This is the message I want in the body of the email"
$user = "*@gmail.com"
$pass = ConvertTo-SecureString -String "
" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential $user, $pass

$mailParam = @{
To = "
@gmail.com"
From = "Tobi <**@gmail.com>"
Subject = "File report"
Body = $body
SmtpServer = "smtp.gmail.com"
Port = 465
Credential = $cred
}

Send-MailMessage @mailparam -UseSsl

Könnte mir bitte jemand dabei helfen?
Vielen Dank schon mal für eure Hilfe!!

Lg
Jürgen

Content-Key: 303624

Url: https://administrator.de/contentid/303624

Printed on: April 20, 2024 at 00:04 o'clock

Member: MrCount
MrCount May 04, 2016 at 07:04:13 (UTC)
Goto Top
Moin,

die Parameter werden mit führendem Bindestrich (wie bei -UseSsl) benutzt...


send-mailmessage -to "User01 <user01@example.com>" -from "ITGroup <itdept@example.com>" -cc "User02 <user02@example.com>" -bcc "ITMgr <itmgr@example.com>" -subject "Don't forget today's meeting!" -credential domain01\admin01 -useSSL
Member: MrCount
MrCount May 04, 2016 at 07:07:03 (UTC)
Goto Top
Und Herr G hat da auch ein paar Beispiele parat...
Mitglied: 129148
129148 May 04, 2016 updated at 14:20:48 (UTC)
Goto Top
Send-MailMessage -From "user@gmail.com" -to "empfaenger@domain.de" -Subject "Dein Subject" -Body 'Dein Body' -SmtpServer "smtp.gmail.com" -Credential (New-Object PSCredential("user@gmail.com",(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL -Port 587  
Geht hier Tipptopp
Member: Drausi
Drausi May 04, 2016 at 07:23:20 (UTC)
Goto Top
Ich habe jetzt mal das script kopiert und abgeändert.
wenn ich es ausführe kommt ein Fehler:
Send-Mail Message: Von der Übertragungsverbindung können keine Daten gelesen werden: net_io_connectionclosed.

InvalidOpertaion. (System.Net.Mail.SmtpCloient:SmtpClient) [SendMailMessage] SmtpException

face-sad
Mitglied: 129148
129148 May 04, 2016 updated at 07:28:12 (UTC)
Goto Top
Dann ist entweder deine PS kaputt oder eine Firewall blockt deinen Traffic (die pösen Securitysuites machen das gerne). Probier es mal mit Port 587.
Member: MrCount
MrCount May 04, 2016 at 07:28:47 (UTC)
Goto Top
Member: Drausi
Drausi May 04, 2016 at 07:30:46 (UTC)
Goto Top
Dann kommt: Für den SMTP Server ist eine sicher verbindung erforderlich, oder der client wurde nicht authentifiziert.
Die Serverantwort war: 5.5.1 Auth erforderlich
Mitglied: 129148
129148 May 04, 2016 updated at 07:32:51 (UTC)
Goto Top
Dann würde ich mal schätzen das SMTP in deinem Google-Konto noch nicht per Captcha freigeschaltet wurde.
Member: Drausi
Drausi May 04, 2016 at 07:36:52 (UTC)
Goto Top
Und was heißt das jetzt genau? Was muss ich da machen? Sorry wegen den Fragen.
Mitglied: 127944
127944 May 04, 2016 at 08:15:30 (UTC)
Goto Top
Mitglied: 129148
129148 May 04, 2016 updated at 12:21:06 (UTC)
Goto Top
Zitat von @Drausi:

Und was heißt das jetzt genau? Was muss ich da machen? Sorry wegen den Fragen.
Erster Link in Ergebnisliste von Edzard ...
https://support.google.com/accounts/answer/6010255?hl=de
Member: colinardo
Solution colinardo May 09, 2016, updated at Aug 12, 2021 at 07:59:26 (UTC)
Goto Top
Hallo Dorfelsan,
also hier funktioniert es mit Google testweise nur auf Port 587 und aktiviertem SSL/TLS einwandfrei, mit Port 465 ist es dagegen nicht möglich, weil die SMTPClient Klasse von Send-MailMessage nur die STARTTLS Variante unterstützt aber kein Implicit SSL. Auf Port 587 hingegen akzeptiert es den STARTTLS Command.

Hier beide erfolgreich getestete Varianten
back-to-topFür GoogleMail:
Send-MailMessage -From "user@gmail.com" -to 'empfaenger@domain.de' -Subject "Betreff" -Body 'Musterbody' -SmtpServer 'smtp.gmail.com' -Credential (New-Object PSCredential('user@gmail.com',(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL -Port 587  
back-to-topFür Outlook.com
Send-MailMessage -From 'deinemail@outlook.com' -to 'empfaenger@domain.de' -Subject 'Betreff' -Body 'Musterbody' -SmtpServer 'smtp-mail.outlook.com' -Credential (New-Object PSCredential('deinemail@outlook.com',(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL -Port 587  

E-Mail Adressen und Passwort natürlich anpassen!

Eine andere alternative Variante für das Versenden ohne Send-MailMessage habe ich hier schon mal gepostet:
PowerShell 2.0 sendMail Skript

-edit. Heutzutage sollte man besser gleich zur sicheren Variante mit der Mailkit-Bibliothek greifen die ich bspw. hier gepostet habe
E-Mail Client für Kommandozeile
Powershell: S-MIME verschlüsselte und signierte E-Mail inkl. sicherem Anhang verschicken

Grüße Uwe

Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Member: Drausi
Drausi May 10, 2016 at 05:13:31 (UTC)
Goto Top
Vielen Dank colinadro!
Ich werde das heute Abend dann gleich mal probieren.

LG
Member: drentsch
drentsch May 10, 2016 at 15:36:04 (UTC)
Goto Top
Wenn Du diesen Teil in ein Script packts sollte es gehen, hab's soeben ausprobiert.

#--------------------------------------------------------------------------------------------------------------
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "DeinUser@gmail.com"
$Password = "DeinPWD"

$to = "xxxxxx@bluewin.ch"
$subject = "Betreff"
$body = "Viel Spass"

$message = New-Object System.Net.Mail.MailMessage
$message.subject = $subject
$message.body = $body
$message.to.add($to)

$message.from = $Username

$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)
#-----------------------------------------------------------------------------------------------------
Member: colinardo
colinardo May 24, 2016 at 15:38:08 (UTC)
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Member: jvohss
jvohss Dec 28, 2017 at 10:20:38 (UTC)
Goto Top
Schade das er Deinen Einsatz noch nicht mal mit einem Danke honorieren.......

Ich probiers gleich auch mal aus...........
Member: colinardo
colinardo Dec 28, 2017 updated at 10:41:02 (UTC)
Goto Top
Hallo @jvohss .
Zitat von @jvohss:
Schade das er Deinen Einsatz noch nicht mal mit einem Danke honorieren.......
Wieso, das tut er doch?!

Siehe

Zitat von @Drausi:

Vielen Dank colinadro!
Ich werde das heute Abend dann gleich mal probieren.

LG

Grüße Uwe
Member: jvohss
jvohss Dec 28, 2017 at 10:50:20 (UTC)
Goto Top
ups ...habe ich überlesen.....hätte man vielleicht auch über den Status gelöst erkennen können.....

Ich schätze solche Arbeiten wie Deine......ich hätte mich noch mal zu Wort gemeldet face-smile


Gruss Jörg