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-Key: 188702

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

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

Member: colinardo
colinardo Jul 27, 2012 updated at 09:17:07 (UTC)
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
Member: Knorkator
Knorkator Jul 27, 2012 at 10:17:15 (UTC)
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!
Member: Knorkator
Knorkator Jul 30, 2012 at 07:42:39 (UTC)
Goto Top
Boa.. manchmal wühlt man sich nen Wolf!

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