knorkator
Goto Top

Email Versand funktioniert nicht - Server 2003 - Powershell

Hallo,

ich möche per Powershell Script eine Logdatei per Mail verschicken.
Auf dem Server läuft ein Hmailserver, der per Benutzername und Kennwort Mails akzeptiert und diese dann Intern weiterleiten soll. Der Hmailserver dient dem Imap Abruf einiger Firmenintern genutzter Email Adressen.

Ich bin kein Scriptprofi und komme da langsam durcheinandern.
Bei der Ausführung des bekomme ich immer Fehlermeldungen.

PS C:\Backupscripte> .\1Backupscript-Wochentag.ps1
Ausnahme beim Aufrufen von "Send" mit 1 Argument(en): "Fehler beim Senden von
Mail."
Bei C:\Backupscripte\1Backupscript-Wochentag.ps1:34 Zeichen:17

back-to-top$SmtpClient.Send <<<< ($Mail)

+ CategoryInfo : NotSpecified: (face-smile , MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Hier ist ein Teil des Scriptes, vermutlich habe ich da schon etwas verschlimmbessert.


$Datum = get-date -uformat "%Y-%m-%d"
$Logdatei = "d:\Backuplog\log-2012-07-26-Donnerstag.log"
$Ordner = "z:\Backup\Server1\Robocopy\Mo-So\$wochentag"

  1. Get Hostname
$ServerName = [System.Net.Dns]::GetHostName()
  1. E-Mail Variables
$SMTP = "127.0.0.1"
$From = "service@domain.com"
$To = "Ansprechpartner@domain.com"
#
  1. E-Mail initialize...
$SmtpClient = new-object System.Net.Mail.SmtpClient
$SmtpClient.Host = "smarthost"
#$SmtpClient.Host = "$SMTP"
$Mail = New-Object System.Net.Mail.MailMessage
$Att = new-object Net.Mail.Attachment("$Logdatei")
$Mail.from = "$From"
$Mail.To.add("$To")
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTP, 25)
$SMTPClient.EnableSsl = $false
  1. Der Account des Hmailservers hat domain.local Benutzernamen die per Outlook korrekt genutzt werden.
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("service@domain.local", "servicekennwort");
  1. E-Mail Content...
$Mail.Subject = "Logdateien Sicherung Server 2003 " + $ServerName + " @ " + $(Get-Date).ToString('dd/MM/yyyy HH:mm') + " Uhr"
$Mail.IsBodyHtml = $true
$Mail.Body = "Im Anhang finden Sie die Logdateien der Datensicherung"
$Mail.Attachments.Add($Att)
$Mail.Attachments.Add("$Logdatei")
$Mail.Priority = "High"
  1. Sending E-Mail...
$SmtpClient.Send($Mail)

Vielen Dank im voraus für die Hilfe!!

Content-ID: 188702

Url: https://administrator.de/forum/email-versand-funktioniert-nicht-server-2003-powershell-188702.html

Ausgedruckt am: 02.04.2025 um 02:04 Uhr

colinardo
colinardo 27.07.2012 aktualisiert um 11:17:07 Uhr
Goto Top
Denke hier liegt der Fehler:
Da fehlt das "System" vor dem "Net.Mail.Attachment" in zwei Zeilen
$Att = new-object Net.Mail.Attachment("$Logdatei")  
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTP, 25) 

außerdem wird das Objekt $SMTPClient zweimal erzeugt:
$SmtpClient = new-object System.Net.Mail.SmtpClient
...
...
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTP, 25) 
dies führt zwar nicht zu einem Fehler sollte aber entfernt werden schon wegen der Lesbarkeit wenn du es mal wieder ändern musst.

Grüße Uwe
Knorkator
Knorkator 27.07.2012 um 12:17:15 Uhr
Goto Top
Hallo Uwe,

habe das Script korrigiert:

$SMTPClient = New-Object System.Net.Mail.SmtpClient($SMTP, 25)
$Att = new-object System.Net.Mail.Attachment("$Logdatei")

Weiterhin habe ich dies hier geändert, sonst funktioniert es ja auf keinen Fall.
$SmtpClient.Host = "$SMTP"

Die Fehlermeldung hat sich leider nicht geändert!

Danke!
Knorkator
Knorkator 30.07.2012 um 09:42:39 Uhr
Goto Top
Boa.. manchmal wühlt man sich nen Wolf!

$SMTP = "127.0.0.1" -> funktioniert nicht!
$SMTP = "Server01.Domain.local funktioniert!