Hallo Nils,
ich habe das wie oben kurz angerissen für mich gelöst.
Ich habe n ( in meinem Fall 5 ) Sendeconnectoren angelegt.
Ich teile nun die CSV Datei auf diese Connectoren auf.
------------------------------------------------------------------------
[int]$Filling = 1200 # Anzahl der Einträge pro SendeConnector
[int]$i = 0 # Datensatzzähler
[int]$count = 0 # Paketzähler ( 1200 +/- pro Paket bzw. Sendeconnector)
$SC1 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
$SC2 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
$SC3 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
$SC4 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
$SC5 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
#Import der DOI Liste
if ( $Failcount -ne 1 )
{
$DOIDom = Get-Content G:\Programme\DOI\Daten\DOI.txt ( die zu importierende CSV Datei )
if ($DOIDom.count -gt 6000) # Es können nur 6000 Domänen auf 5 Sendeconnectoren aufgeteilt werden
{
$DOIDom.count | out-file $DomCount
$FailCount = 1
$ErrCode = "ToBig"
$2Big = "Die Anzahl der Domänen überschreitet die Kapazität der verfügbaren Sendeconnectoren ( 5 a 1200 Domänen ) "
}
if ( $Failcount -ne 1 )
{
# Leeren der Sendelisten
# for ($s=1; $s -le 5; $s++) {set-sendconnector SendeconnectorName-$s -AddressSpaces SMTP:*.Dummy$s".Dummy;5"}
foreach($DOI in $DOIDom)
{
$i++ # Zähler der Datensätze
if ($i -eq 1) {continue} # die 1. Zeile der Downloaddatei überspringen ( Kommentar )
if ($i -eq $DOIDom.count) {continue} # letzte Zeile ausblenden da Kommentar
if ($DOI -like ".*") {continue} # wenn der DomainName einen führenden Punkt hat, überspringen
if ($DOI -Notlike ".*") { $DOI = "."+$DOI } # wenn der DomainName keinen führenden Punkt hat, einen Punkt setzen
if ($i -lt $Filling + 1) {$count = 1} # bis 1200
if ($i -lt ($Filling *2) -AND $i -gt $Filling ) {$count = 2} # von 1201 bis 2400
if ($i -lt ($Filling *3) -AND $i -gt ($Filling *2)){$count = 3} # von 2401 bis 3600
if ($i -lt ($Filling *4) -AND $i -gt ($Filling *3)){$count = 4} # von 3601 bis 4800
if ($i -lt ($Filling *5) -AND $i -gt ($Filling *4)){$count = 5} # von 4801 bis 6000
# Initialisieren der Sendelisten
if ($count -eq 1 -AND $SC1 -ne 1)
{
set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5" # Dummyeintrag setzen
$SC1 = 1
}
if ($count -eq 2 -AND $SC2 -ne 1)
{
set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
$SC2 = 1
}
if ($count -eq 3 -AND $SC3 -ne 1)
{
set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
$SC3 = 1
}
if ($count -eq 4 -AND $SC4 -ne 1)
{
set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
$SC4 = 1
}
if ($count -eq 5 -AND $SC5 -ne 1)
{
set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
$SC5 = 1
}
Write-Host $i" "SendeconnectorName-$count $DOI
$ConnectorConfiguration = Get-SendConnector SendeconnectorName-$count
$ConnectorConfiguration.AddressSpaces += "smtp:*$DOI;5"
Set-SendConnector SendeconnectorName-$count -AddressSpaces $ConnectorConfiguration.AddressSpaces
}
# Es ist zu einem Fehler gekommen
if ( $FailCount -eq 1)
{
switch -wildcard ($ErrCode)
{
"Down*" { Send-MailMessage -SMTPServer MailServer -encoding ([System.Text.Encoding]::UTF8) -BodyAsHtml -to "AnWen@Domaene.de" -from "Mir@Domaene.de" -Subject "DOI-Download fails" -body $Fail }
"ToBig*" { Send-MailMessage -SMTPServer MailServer -encoding ([System.Text.Encoding]::UTF8) -BodyAsHtml -to "AnWen@Domaene.de" -from "Mir@Domaene.de" -Subject "DOI-zuviele Domänen" -body $2Big }
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------
Soweit der Hauptblock. Geht bestimmt auch noch smarter, aber für mich ist das so OK.
VG
Volker