将正文转换为 HTML 无效

Converting Body to HTML Not Working

我正在尝试将我的正文转换为 HTML,这样它就不会在我的电子邮件中显示为纯文本。

这是代码

$From = ""
$To = ""
$SMTPServer = ""
$SMTPPort = "587"
$Username = ""
$Password = ""
$subject = "Test Powershell"
$body = $htmlreport
$bodyAsHtml = $true
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.Send($From, $To, $subject, $body);

我看不到要将报告发送为 HTML。

$bodyAs 包含 `enter code here`。你应该删除那个。您也不要在任何地方设置它。

也许可以试试 Send-MailMessage cmdlet:

Send-MailMessage -SmtpServer $SMTPServer -To $To -From $From -Subject $subject -Body $body -BodyAsHtml

与其将单个字符串传递给 $smtp.Send(),不如创建一个 MailMessage 对象并将其发送:

$msg            = New-Object System.Net.Mail.MailMessage
$msg.From       = $From
$msg.To         = $To
$msg.Subject    = $subject
$msg.Body       = $body
$msg.IsBodyHtml = $true # this is where the magic happens

$smtp             = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL   = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)

$smtp.Send($msg) # and then send the message we just composed above