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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303624
Url: https://administrator.de/contentid/303624
Ausgedruckt am: 23.11.2024 um 10:11 Uhr
18 Kommentare
Neuester Kommentar
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
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
Und Herr G hat da auch ein paar Beispiele parat...
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
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.
2 Sekunden nach dem Fehler gegoogelt:
https://social.technet.microsoft.com/Forums/windowsserver/en-US/7242541e ...
https://social.technet.microsoft.com/Forums/windowsserver/en-US/7242541e ...
Dann würde ich mal schätzen das SMTP in deinem Google-Konto noch nicht per Captcha freigeschaltet wurde.
Erster Link in Ergebnisliste von Edzard ...
https://support.google.com/accounts/answer/6010255?hl=de
https://support.google.com/accounts/answer/6010255?hl=de
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
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.
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
Fü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
Fü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.
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)
#-----------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------------
$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)
#-----------------------------------------------------------------------------------------------------
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.