Информация CSS удаляется при отправке HTML-писем с помощью PowerShell - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть два скрипта 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?

И как я могу предотвратить это, и при этом сделать красивое электронное письмо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...