masterhinz
Goto Top

EMail ps skript funktioniert nicht.

Hallo Zusammen,

ich habe ein skript zusammen geschustert, welches einfach keine eMail versenden will. Es wirft mir aber auch partout keine Fehlermeldung aus.. Nach vielem hin und her probieren bin ich ratlos. Kann mir jemand helfen?

$SMTPServer = "mailserver"  
$to = "empfaenger@firma.de"  
$from = "versender@firma.de"  
$Subject = "Mailarchiv wird nicht mehr abgerufen"  
$body = "Mailarchiv wird nicht mehr abgerufen"  
$username = "user"  
$password = ConvertTo-SecureString "password" -AsPlainText -Force  
$creds = New-Object System.Management.Automation.PSCredential ($username, $password)
$Objekte = Get-MailboxStatistics -Identity Postfach | Format-Wide -Property ItemCount
If ("$Objekte" -gt 500) {Send-MailMessage -To $To -From $From -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Credential $creds -encoding ([System.Text.Encoding]::UTF8)}  
Else {}

Es handelt sich um ein exchange2010 in auf einem 2008 R2 Server.
Sinn und Zweck ist hier ein Postfach zu überwachen, ob hier sich hier zu viele eMails bzw. Objekte ansammeln.

Die Objekte zu bestimmen funktioniert. Die sind bei meinen Test auch größer als 500 gewesen.
Ich vermute aber dass das Problem bei dem Send-MailMessage liegt, da auch der Aufruf alleine des Send-MailMessages Befehls nicht funktioniert bzw. nichts passiert. (Keine Fehlermeldung)

Viele Grüße

Mhinz

Content-ID: 222086

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

Ausgedruckt am: 08.11.2024 um 19:11 Uhr

colinardo
colinardo 15.11.2013 aktualisiert um 11:28:15 Uhr
Goto Top
Hallo masterhinz,
zuerst schreibe deine Zeile 9 so :
$Objekte = (Get-MailboxStatistics -Identity Postfach).ItemCount
Außerdem brauchst du keine Anführungszeichen um "$Objekte" in der IF-Bedingung in Zeile 10.

Dann musst du eventuell auf dem Exchange im Empfangsconnector unter "Berechtigungsgruppen" die Gruppe "Anonyme Benutzer" aktivieren. Siehe hierzu: http://social.technet.microsoft.com/Forums/exchange/en-US/3201f365-5b74 ...

Alternativ probiere mal folgende .NET Mail-Funktion (Zeile 3-6) anpassen:
Function sendmail($FROM,$TO,$SUBJECT,$BODY,$ATTACHMENTS){

  $SMTPHOST = "[SERVER]"  
  $SMTPPORT = 25
  $SMTPUSER = "[USERNAME]"  
  $SMTPPass = "[PASSWORT]"  

  $SMTPClient = New-object System.Net.Mail.SmtpClient($SMTPHOST,$SMTPPORT)
  # Wenn SSL dann nächste Zeile auskommentieren
  # $SMTPClient.EnableSsl = $true
  $Mail = new-object System.Net.Mail.MailMessage
  $Mail.from = $FROM 
  $Mail.to.add($TO)
  $SMTPClient.Credentials = new-object System.Net.NetworkCredential($SMTPUSER,$SMTPPass)
  $Mail.Subject = $SUBJECT
  $Mail.Body = $BODY
  # Add Attachments
  if ($ATTACHMENTS){
    foreach ($att in $ATTACHMENTS){
      $Mail.Attachments.Add($att.FullName)
    }
  }
  $SMTPClient.Send($Mail)
}

sendmail "sender@domain.com" "empfaenger@domain.com" "DEIN BETREFF" "DER INHALT"  
Grüße Uwe
masterhinz
masterhinz 15.11.2013 um 14:53:47 Uhr
Goto Top
Hi Uwe,

Danke für die Lösung mit der Funktion... es hat damit funktioniert. Zusätzlich hatte ich aber auch noch einen Fehler, dass er mit dem bestimmten Account, welchen ich benutzt habe zur Authentifizierung irgendein Problem hat. Als WA habe ich erst mal einen anderen Account benutzt und werde mir den nicht funktionierenden Account mal genauer Anschauen müssen, warum der nicht funktioniert.
Danke & schönes WE! =)