brex-it
Goto Top

Mailversand via PowerShell-Script mit Anhang (grösser als 8MB)

Hallo Leute

ich hoffe, dass ich hier auf ein paar hilfreiche Antworten hoffen kann.
Also zu meinem Problem, ich muss eine Mail mit Anhang per PowerShell-Script senden.
Es funktioniert solange der Anhang nicht grösser als 8MB ist, wenn er grösser ist, bekomme ich
einen Time-Out Fehler und die Nachricht wird nicht gesendet.

Wenn ich über die selbe Mail-Adresse übers Outlook eine Nachricht versende, kann ich ohne Probleme
z.B. 16MB anhängen und versenden, jedoch übers PowerShell funktioniert es nur bis max. 8MB.
Woran liegt das?
Ist die maximale Nachrichtengrösse über PowerShell limitiert, oder gibt es eine möglichkeit diese
maximale Nachrichtengrösse zu erweitern, damit auch eine Mail mit einem Anhang von 16MB versendet
werden kann?!

Hier mein Script:

  1. Mail-Adressen
$From = "absender@xxx.com"
$To = "empfänger@xxx.com"

  1. Authentifizierung
$Benutzer = "absender@xxx.com"
$Passwort = "passwort"

  1. Pfad vom Anhang
$Anhang = "C:\test.zip"

  1. Betreff
$Betreff = "Betreff"
$Nachricht = "Nachricht der Mail"



$Att = new-object Net.Mail.Attachment($Anhang)
$SmtpServer = “smtp.xxx.com”
$Smtp = new-object Net.Mail.SmtpClient($SmtpServer)
$Credentials=new-object system.net.networkcredential($Benutzer,$Passwort)
$Smtp.credentials=$Credentials.getcredential($SmtpServer,"587","basic")
$Message = New-Object Net.Mail.MailMessage($From,$To)
$Message.Subject = $Betreff
$Message.Body = $Nachricht
$Message.Attachments.Add($Att)
$Smtp.Send($Message)


Hoffe auf ein paar hilfreiche Antworten und Tipps.

Liebe Grüsse

Jvan

Content-ID: 214976

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

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

colinardo
colinardo 22.08.2013 aktualisiert um 14:52:42 Uhr
Goto Top
Hallo Jvan, Willkommen im Forum!
Das liegt daran das das NET-Object System.Net.Mail.SmtpClient bei einem synchronen Send-Vorgang standardmäßig einen Timeout von 100 Sekunden hat, d.h. wenn die Mail nicht innerhalb dieser Zeitspanne gesendet wurde, wird der Sendevorgang abgebrochen.
Damit das nicht passiert musst du den Timeout vor dem Senden hiermit verlängern:
$Smtp.Timeout = 1800000
Dies verlängert den Timeout beispielsweise auf 30 Minuten. Die Angabe muss in Millisekunden erfolgen.

Grüße Uwe
brex-it
brex-it 22.08.2013 um 15:56:38 Uhr
Goto Top
Hallo Uwe,
vielen Dank für deine hilfreiche Antwort.

Ich habe jetzt ein paar Test's gemacht jedoch wenn ich mehr als 18MB als Anhang senden möchte, kommt folgende Meldung;


Ausnahme beim Aufrufen von "Send" mit 1 Argument(en): "Speicherzuordnung überschritten. Die Serverantwort
war: 5.2.3 DATA size exceeds maximum permitted"
Bei C:\Users\XXX.XXX\Desktop\Mail_per_PowerShell\MailMitAnhang.ps1:29 Zeichen:11

back-to-top$Smtp.Send <<<< ($Message)

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


Laut angaben vom Hoster, sollte es bis max. 25MB funktionieren.
Ich hoffe, dass ich noch einen solchen super Tipp bekomme, damit es nachher auch funktioniert.

Gruss Jvan
colinardo
colinardo 22.08.2013 um 16:05:46 Uhr
Goto Top
Die Gesamtgröße einer Mail ist immer etwas größer als nur der reine Anhang. Kläre das mit deinem Hoster ab - anhand der Rückmeldung liegt hier das Problem eindeutig auf Hosterseite, da kannst du mit Einstellungen an deinem Script nichts ausrichten, außer du komprimierst deine Anhänge vorher.
Würde dir aber empfehlen größere Dateien anders zu übermitteln, z.B. über eine FTP-Freigabe und einen Link, oder Upload auf einen Webserver mit zufällig generiertem Dateinamen. Große Anhänge verschickt man heute eigentlich nicht mehr per Mail.

Grüße Uwe
brex-it
brex-it 22.08.2013 um 16:14:54 Uhr
Goto Top
Vielen Dank.
Ich habe dies als Auftrag bekommen, mich mit dem mal zu beschäftigen. Jedoch da ich nach tagelangem ausprobieren und pröbeln nicht weiterkam,
musste ich mich an ein Forum wenden.
Bis 18MB kann ich ja jetzt problemlos versenden, und somit bin ich schon mal einen Schritt weiter. Wie die effektive Lösung schlussendlich aussieht, weiss ich selber noch nicht.

Jedoch vielen herzlichen Dank für deine raschen Antworten.

Gruss Jvan