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-ID: 303624

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

Ausgedruckt am: 23.11.2024 um 10:11 Uhr

MrCount
MrCount 04.05.2016 um 09:04:13 Uhr
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
MrCount
MrCount 04.05.2016 um 09:07:03 Uhr
Goto Top
Und Herr G hat da auch ein paar Beispiele parat...
129148
129148 04.05.2016 aktualisiert um 16:20:48 Uhr
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
Drausi
Drausi 04.05.2016 um 09:23:20 Uhr
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
129148
129148 04.05.2016 aktualisiert um 09:28:12 Uhr
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.
MrCount
MrCount 04.05.2016 um 09:28:47 Uhr
Goto Top
Drausi
Drausi 04.05.2016 um 09:30:46 Uhr
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
129148
129148 04.05.2016 aktualisiert um 09:32:51 Uhr
Goto Top
Dann würde ich mal schätzen das SMTP in deinem Google-Konto noch nicht per Captcha freigeschaltet wurde.
Drausi
Drausi 04.05.2016 um 09:36:52 Uhr
Goto Top
Und was heißt das jetzt genau? Was muss ich da machen? Sorry wegen den Fragen.
127944
127944 04.05.2016 um 10:15:30 Uhr
Goto Top
129148
129148 04.05.2016 aktualisiert um 14:21:06 Uhr
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
colinardo
Lösung colinardo 09.05.2016, aktualisiert am 12.08.2021 um 09:59:26 Uhr
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.
Drausi
Drausi 10.05.2016 um 07:13:31 Uhr
Goto Top
Vielen Dank colinadro!
Ich werde das heute Abend dann gleich mal probieren.

LG
drentsch
drentsch 10.05.2016 um 17:36:04 Uhr
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)
#-----------------------------------------------------------------------------------------------------
colinardo
colinardo 24.05.2016 um 17:38:08 Uhr
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
jvohss
jvohss 28.12.2017 um 11:20:38 Uhr
Goto Top
Schade das er Deinen Einsatz noch nicht mal mit einem Danke honorieren.......

Ich probiers gleich auch mal aus...........
colinardo
colinardo 28.12.2017 aktualisiert um 11:41:02 Uhr
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
jvohss
jvohss 28.12.2017 um 11:50:20 Uhr
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