我使用以下代码使用PowerShell脚本发送邮件:
undefined variable vendorId
但它通过电子邮件给我输出:
测试beigefügtZusätzlichverfügbar。 äüüß
你有任何想法如何解决这个问题吗?
修改
$HTMLmessage = "test beigefügt Zusätzlich verfügbar. äöüß"
Send-MailMessage -From $fromemail -To $users -Subject "Test through ps" -Encoding ([System.Text.Encoding]::UTF8) -BodyAsHTML -Body $HTMLmessage -Priority Normal -SmtpServer $server ;
但它给了我相同的o / p。
答案 0 :(得分:2)
我认为你在这里误解了这个概念。
不在 powershell 和 smtp 中的问题。从代码的外观来看,它似乎是 HTML 编码问题。问题是您的邮件的接收方不理解您在HTML邮件中使用不同的编码。
尝试为您的内容添加编码。
ISO-8859-1
:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
UTF-8
:
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
使用您的脚本:
$HTMLMessage = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>'
$HTMLMessage += 'test beigefügt Zusätzlich verfügbar. äöüß'
仅在通过send-mailmessage
发送电子邮件之后。
Edit1&amp;&amp; 2 强>
啊,您之前没有将邮件正文转换为html。 -Encoding ([System.Text.Encoding]::UTF8)
就足够了,你可能是对的。
显然,我太快了。让我们做好。
$HTMLMessage = '<html>'
$HTMLMessage += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>'
$HTMLMessage += '<body>test beigefügt Zusätzlich verfügbar. äöüß</body>'
$HTMLMessage += '</html>'
send-mailmessage -from $fromemail -to $users -subject "Test through ps" -Encoding ([System.Text.Encoding]::UTF8) -BodyAsHTML -body $HTMLmessage -priority Normal -smtpServer $server
从我们的讨论中看来,您的文件编码错误。如果你有普通的 UTF8而没有签名。源文件应该是带有签名的 UTF-8 ,它也适用于带有签名的 UTF16BE 。