2016-01-31 96 views
0

我有一個PSCustomObject $result,其中包含的數據可以通過創建將通過Send-MailMessage發送的HTML表進行過濾。從PSCustomObject創建Outlook HTML表格

我可以創建一個看起來不錯的HTML表格,但我試圖將該表格插入到Outlook電子郵件的正文中,該電子郵件似乎不適用於CSS,因爲在Outlook中,讀)。如果簡單地將htm文件附加到電子郵件是我唯一的選擇,那麼我會走這條路線,但我的首選是將表插入電子郵件正文。

$denied = @() 
foreach ($a in $result) { 
    if ($a.MaintenanceWindow -eq 'Not found!' -or $a.LastReboot -eq 'Access Denied!') { 
    $denied += $a 
} 

} #end foreach 

$a = @' 
"<style>" 
"BODY{background-color:lightgrey;}" 
"TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}" 
"TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}" 
"TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}" 
"</style>" 
'@ 

$denied | ConvertTo-Html -Head $a | Out-File D:\c.htm; 
ii D:\c.htm 

回答

2

如果您希望表格作爲輕鬆完成的電子郵件的正文。

# -Body expects one string. Out-String will take care of that. 
$HTMLBody = $denied | ConvertTo-Html -Head $a | Out-String 
# To be sure it is rendered as HTML we use the switch -BodyAsHTML 
Send-MailMessage -To $toAddresses -From $fromAddresses -Subject "All over this table" -Body $HTMLBody -BodyAsHtml -SmtpServer server 

現在表格將成爲郵件。


夫婦的事情,我想給

我有一個問題,你$a以外指出。我刪除了所有的外部雙引號。與他們不在一起閱讀。

$a = @' 
<style> 
BODY{background-color:lightgrey;} 
TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;} 
TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;} 
TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;} 
</style> 
'@ 

當我們談論$a您使用,作爲您的foreach過程變量,你CSS變量。使用有意義的名字,你不會因爲意外覆蓋自己的變量而陷入錯誤。

您正在根據現有數組的過濾內容製作$denied數組。雖然沒有太多的項目是一個表演豬,而不是必需的。

$denied = $result | Where-Object{ 
    $_.MaintenanceWindow -eq 'Not found!' -or 
    $_.LastReboot -eq 'Access Denied!' 
} 
+0

看起來不錯,我承認我在沖和混合兩個腳本。通過使用[這個偉大的腳本](https://community.spiceworks.com/scripts/show/1745-set-alternatingrows-function-modify-your-html-table-to-有交替行顏色),一切都很好,謝謝! – user4317867

+0

@ user4317867如果你的客戶端/瀏覽器支持它們,你也可以使用簡單的CSS:http://stackoverflow.com/questions/3084261/alternate-table-row-color-using-css。 'tr:nth-​​child(偶數){background-color:#000000}'例如 – Matt

+0

Outlook似乎並不接受某些CSS元素。至少這是我搜索的結果。 [更多信息](https://www.campaignmonitor.com/css/) – user4317867