PowerShell中Send-MailMessage发送邮件时商标符号变问号的解决问询
解决PowerShell Send-MailMessage特殊符号显示为问号的问题
问题根源是邮件编码不匹配:Send-MailMessage默认编码无法正确处理™、®这类Unicode特殊符号,导致传输过程中符号被替换为问号。
以下是可行的解决方法:
方法一:指定UTF-8编码并在HTML中声明字符集
修改脚本,同时设置SMTP传输编码和HTML内容的字符集声明:
$body = "<meta charset='UTF-8'><b>A program™ has sent this email® . </b>" Send-MailMessage -SmtpServer mail.com -Subject "test" -BodyAsHtml $body -Encoding UTF8
<meta charset='UTF-8'>:告诉邮件客户端用UTF-8解析HTML内容-Encoding UTF8:让Send-MailMessage以UTF-8编码发送邮件内容,确保特殊符号在传输中不丢失
方法二:处理主题中的特殊符号(如果需要)
如果邮件主题中也包含特殊符号,同样需要指定编码:
$subject = "Test™ 邮件主题" $body = "<meta charset='UTF-8'><b>A program™ has sent this email® . </b>" Send-MailMessage -SmtpServer mail.com -Subject $subject -BodyAsHtml $body -Encoding UTF8
内容的提问来源于stack exchange,提问作者Ko Nayaki
相关产品推荐
相关产品推荐

