PowerShell Powershell Email mit Anhang versenden

Alfredo64

Cadet 3rd Year
Registriert
Jan. 2020
Beiträge
43
Hallo,

ich möchte eine CSV datei in Powershell mit einer Email versenden.

PowerShell:
$EmailFrom = “*******”


$EmailTo = “***********”


$Subject = "******”


$Body = “****”


$SMTPServer = “*****”"


# Passwort:


$secure2 = get-content ******\aespassword.txt | convertto-securestring -key (1..16)

$UnsecurePassword = (New-Object PSCredential "username",$secure2).GetNetworkCredential().Password


#SMTP und Mail-Send


$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)


$SMTPClient.EnableSsl = $true


$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“***********”, $UnsecurePassword);

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Das Email senden an sich Funktioniert perfekt nur ich weiß nicht wie ich da eine CSV Datei anhängen kann.
 
Zuletzt bearbeitet:
Hey,

https://docs.microsoft.com/en-us/po...ll.utility/send-mailmessage?view=powershell-7

Bsp. 2:

Code:
Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\data.csv -Priority High -DeliveryNotificationOption OnSuccess, OnFailure -SmtpServer 'smtp.fabrikam.com'

Geht "-Attachments .\data.csv" nicht?
 
@derlorenz

meinst du so?

Code:
Send-MailMessage -From ******@*****.de -Subject test1 -To ******@******.de -Attachments C:****\test.csv -Body test2 -Credential "Passwort" -Port 587 -SmtpServer smtp.outlook.com
 
  • Gefällt mir
Reaktionen: derlorenz
Genau so hätte ich es auch mal versucht. Klappt es denn?
 
@derlorenz

nein leider nicht. Es kommt immer eine Fehlermeldung wegen der SMTP authentifizierung.

Send-MailMessage : Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: 5.7.57 SMTP;
Client was not authenticated to send anonymous mail during MAIL FROM [AM0PR06CA0083.eurprd06.prod.outlook.com]
In Zeile:3 Zeichen:1

muss ich meine SMTP anmeldedaten anders eingeben?
 
ggf. musst du im Exchange (sollte dieser vorhanden sein) die IP vom Server/client hinterlegen. Stichwort Relay bzw. könnte es auch ein abgelaufenes Kennwort sein von deinem Testuser.

Aber meintest du nicht, das der Mailversand sonst funktioniert? Habt ihr ggf. eine Firewall als SMTP-Relay?
 
@derlorenz

normal sollte es mit den anmeldedaten Funktionieren bei dem beispiel:

PowerShell:
$EmailFrom = “*******”

$EmailTo = “***********”

$Subject = "******”

$Body = “****”

$SMTPServer = “*****”"

# Passwort:

$secure2 = get-content ******\aespassword.txt | convertto-securestring -key (1..16)
$UnsecurePassword = (New-Object PSCredential "username",$secure2).GetNetworkCredential().Password

#SMTP und Mail-Send

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“***********”, $UnsecurePassword);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

da kommt kei Fehler mit dem SMTP Server.

Aber meintest du nicht, das der Mailversand sonst funktioniert? Habt ihr ggf. eine Firewall als SMTP-Relay?

Das weiß ich nicht mir wurde nur gesagt, das ich mich dort mit meinen Daten anmelden muss. Und bei dem Beispiel was ich als erstes gebracht hatte hat das soweit Funktioniert.
 
Zurück
Oben