Autor Beitrag
Pat.bat
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 19.08.19 14:53 
Hallo zusammen,

ich habe derzeit ein kleines Problem und weiß nicht so recht wie ich es lösen kann.

Ich habe ein Skript in PowerShell, das eine E-Mail verschicken soll, dazu bedient es sich an dem Outlook Com Objekt.

Die e-Mail samt Signatur als htm Datei werden auch ordentlich versand, nur werden Umlaute in meinem E-Mail Body nicht korrekt angezeigt.
In der Signatur aber schon (diese wurde in Word erstellt und als htm gespeichert)

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
$Signature = Get-Content -Path "G:\FD_50_Bank\System\Aufgabenplanungen\E-Mail\Signatur.htm" 
$htmlBody = "<HTML><meta http-equiv=Content-Type content=""text/html; charset=utf-8""><BODY><p>$Body</p>$Signature<\BODY><\HTML>"

# Funktion zum Senden einer E-Mail. Parameter müssen mit übergeben werden.
Function Send-Mail($Importance, $Subject, $Body, $To, $CC, $Source, $BoolAttachments, [Array]$Dateien) 
{
    Try {
        # Erstellen eines Outlook Application Objekts
        $o = New-Object -ComObject Outlook.Application

        $mail = $o.CreateItem(0)
        $mail.importance = $Importance          # 1 = Normal, 2 = Wichtig
        $mail.subject = "$Subject"        
        $mail.HTMLbody = $Body
        $mail.To = "$To"                       
        $mail.CC = "$CC"


aufgerufen wird die Funktion über:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Send-Mail   -Importance $Importance `
            -Subject $Subject `
            -Body $htmlBody `
            -To $To `
            -CC $cc `
            -Source $FilePath `
            -BoolAttachments $BoolAttachments `
            -Dateien @($Files)



Ich hoffe jemand kann mich auf das Problem hier stoßen, ich finde es nicht.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 19.08.19 15:30 
Eine PowerShell hat leider kein UTF-8-Encoding (ich glaube, es ist Windows-1252, bin aber gerade nicht 100% sicher), das heißt wenn Du die Methode von einer PowerShell aus aufrufst, wird der String für den Body falsch kodiert sein.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4437
Erhaltene Danke: 910


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 19.08.19 21:15 
Möglicherweise hilft es das $OutputEncoding auf utf zu setzen wie hier beschrieben. Es klingt von der Beschreibung her nach dem Richtigen aber da du direkt mit einem COM Objekt kommunizierst würde ich nicht unbedingt damit rechnen das es dort auch hilft.