У меня есть два скрипта PowerShell
Первый, преобразующий и XML-файл в HTML с использованием XLST, простой и стандартный, и выглядит так (не мой код, а где-то еще)
param ($xml, $xsl, $output)
if (-not $xml -or -not $xsl -or -not $output)
{
Write-Host "& .\xslt.ps1 [-xml] xml-input [-xsl] xsl-input [-output] transform-output"
exit;
}
trap [Exception]
{
Write-Host $_.Exception;
}
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
$xslt.Load($xsl);
$xslt.Transform($xml, $output);
Write-Host "generated" $output;
Затем второй сценарий PowerShell берет преобразованный HTML-файл и отправляет его в виде HTML, используя следующее:
$body = Get-Content -Path .\$bodyFile
send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -Encoding UTF8
Как вы можете заметить, я использую параметр -BodyAsHtml.
Поскольку у меня естьне нашел способа встроить CSS-файл, вместо этого я поместил его в виде ссылки в заголовок HTML следующим образом:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title of the HTML File</title>
<link rel="StyleSheet" href="http://srv01/css/main.css">
<link rel="StyleSheet" href="http://srv01/css/scan.css">
</head>
.
Но когда я смотрю на полученную почту, HTML-код выглядит так:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title of the HTML File</title>
</head>
.
Итак, как вы можете видеть, информация CSS отбрасывается, и поэтому результат выглядит довольно плохо.
Итак, мои вопросы со всем этим:
Это Outlook / Office365, который удаляет информацию CSS?
И как я могу предотвратить это, и при этом сделать красивое электронное письмо?