Powershell: Ausnahme beim Aufrufen von "Save"
Hallo zusammen,
ich habe eine Powershell Script welche mit Hilfer der IMAPX.ddl E-Mailanhänge aus einem Postfach abholt und diese abspeichert.
Bei meinen ersten Testdaten hat das auch funktioniert, doch nun habe ich eine Datei bekommen, bei der mir das Script folgendes sagt:
Ausnahme beim Aufrufen von "Save" mit 2 Argument(en): "Die Eingabe ist keine gültige Base-64-Zeichenfolge, da sie ein Nicht-Base-64-Zeichen, mehr als zwei Leerstellen oder in den Leerstellen ein Zeichen enthält, das ungültig ist. "
Bei den zuspeichernden Anhängen handelt es sich um PDF Rechnungen, die dann ins Rechnungsprgramm zur Bearbeitung importiert werden.
Das Script tut an dierser Stelle Folgendes:
Die Fehlermeldung erscheint bei der letzten Zeile.
Hat jemand eine Idee wodran das liegen könnte und wie man das Problem lösen kann?
Vielen Dank.
ich habe eine Powershell Script welche mit Hilfer der IMAPX.ddl E-Mailanhänge aus einem Postfach abholt und diese abspeichert.
Bei meinen ersten Testdaten hat das auch funktioniert, doch nun habe ich eine Datei bekommen, bei der mir das Script folgendes sagt:
Ausnahme beim Aufrufen von "Save" mit 2 Argument(en): "Die Eingabe ist keine gültige Base-64-Zeichenfolge, da sie ein Nicht-Base-64-Zeichen, mehr als zwei Leerstellen oder in den Leerstellen ein Zeichen enthält, das ungültig ist. "
Bei den zuspeichernden Anhängen handelt es sich um PDF Rechnungen, die dann ins Rechnungsprgramm zur Bearbeitung importiert werden.
Das Script tut an dierser Stelle Folgendes:
# wenn es Nachrichten gibt
if($messages.Count -gt 0){
# Für jede Nachricht
foreach ($m in $messages){
Write-Host $m.subject
#Prüfen der Anzahl der Anhänge. Die Anzahl muss größer/gleich 1 sein.
if ($m.Attachments.Count -ge 1) {
$cntatt = 0
#Zählen der Anhänge die auf PDF enden.
foreach($a in $m.Attachments){
if ($a.FileName.Substring($a.FileName.Length -3).ToUpper() -eq "PDF") {
$cntatt = $cntatt + 1
}
}
#Nur wenn 1 PDF Anhang an der Mail ist wird die Mail bearbeitet
if ($cntatt -eq 1) {
# Ist das Attachment aus einem Grund noch nicht heruntergeladen, lade es
if (!$a.Downloaded){$a.Download()}
# Zieldateiname = Dateiname des Original-Attachments
$targetfile = $a.FileName; $cnt = 1
# Sollte bereits eine Datei mit diesem Zielnamen im Download-Ordner existieren hänge an den Namen so lange eine
# Zahl an _NN bis der Name frei ist.
while(Test-Path "$DOWNLOADPATH\$targetfile"){
$targetfile = "$([IO.Path]::GetFileNameWithoutExtension($a.Filename))_$("{0:00}" -f $cnt)$([IO.Path]::GetExtension($a.Filename))"
$cnt++
}
write-host "Speichere Anhang '$targetfile' ($("{0:F3} MB" -F ($a.FileSize / 1MB))) ... " -NoNewline -ForegroundColor Green
$a.Save($DOWNLOADPATH,$targetfile)
Die Fehlermeldung erscheint bei der letzten Zeile.
Hat jemand eine Idee wodran das liegen könnte und wie man das Problem lösen kann?
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 464328
Url: https://administrator.de/contentid/464328
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
4 Kommentare
Neuester Kommentar
Servus,
das ist ein Bug der DLL. Der Attachment-Parser ist fehlerhaft und versagt z.B. bei Nachrichten mit einem Mix aus echten Anhängen und Inline-Attachments.
Das Projekt wird so gut wie nicht mehr gepflegt, deswegen rate ich zum Umstieg z.B. auf Mailkit (http://www.mimekit.net) oder die diversen anderen .NET Bibliotheken.
Grüße Uwe
das ist ein Bug der DLL. Der Attachment-Parser ist fehlerhaft und versagt z.B. bei Nachrichten mit einem Mix aus echten Anhängen und Inline-Attachments.
Das Projekt wird so gut wie nicht mehr gepflegt, deswegen rate ich zum Umstieg z.B. auf Mailkit (http://www.mimekit.net) oder die diversen anderen .NET Bibliotheken.
Grüße Uwe
Hallo Schneerunzel,
da der alte Post sehr viel Feedback hat, habe ich ergänzend mit der Mailkit-Bibliothek ein ähnliches Beispiel im alten Thread gepostet der die Probleme mit dem Attachment-Handling nicht aufweist.
Grüße Uwe
da der alte Post sehr viel Feedback hat, habe ich ergänzend mit der Mailkit-Bibliothek ein ähnliches Beispiel im alten Thread gepostet der die Probleme mit dem Attachment-Handling nicht aufweist.
Grüße Uwe
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.