当Powershell发送电子邮件时,编码无法正常工作

时间:2014-08-08 14:54:15

标签: powershell encoding utf-8

我通过powershell发送一个testemail,如

$messageParameters = @{
    Subject    = "Email Tool"
    Body       = Get-Content "C:\body.txt" | out-string
    From       = "Info <info@xy.de>"
    To         = "Me <me@xy.de>"
    SmtpServer = "mail.xy.de"
    Encoding   = New-Object System.Text.UTF8Encoding
}

send-mailmessage @messageParameters -BodyAsHtml

除编码外,一切正常。

如果我不使用编码,则某些字符会以??

的形式发送

如果我使用它,我真正想要做的,而不是我得到这个Ä Ö Ãœ

但它应该是ä ö ü,而不是上面的内容。

如果我不以HTML格式发送邮件,那就可以了。

如何使用正确的编码AND以html格式发送邮件?

1 个答案:

答案 0 :(得分:3)

我认为问题在于,当您将文本文件作为非utf8读入变量时,文本文件会变得混乱。

我会尝试将文本文件作为UTF-8并保留编码行。

Body = Get-Content "C:\body.txt" -Encoding UTF8 | Out-String

编辑:为每个Dwza添加Out-String。