[英]PowerShell - Send HTML file as Body of Email
很抱歉打斷了您的日常工作,但我需要以下腳本方面的幫助。 HTML 報告工作正常,但它收集數據並將它們作為 HTML 放置。 問題是當我發送 HTML 時,它作為附件發送,而不是作為正文發送。
我收到以下錯誤消息
Send-MailMessage : Cannot validate argument on parameter 'Body'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At line:20 char:134
+ ... edtronic.com -Subject "Folder Delition" -Body $CoryReportHtml -BodyAs ...```
有人可以檢查我做錯了什么嗎?
#Time when the email is sent
$emailTime = (Get-Date).ToString("MM/dd/yyyy")
#Locate Folders older than 30 days
$CoryReportHtml += Get-ChildItem "\\Server01\XFER\Cory" -Directory |
Sort LastWriteTime -Descending |
Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} |
Select-Object Name, LastWriteTime |
ConvertTo-Html -Head $Header -PreContent "
<h2>Folders older than 30 days</h2>
<body>
Folders were removed on - $emailTime
<br></br>
Location: \\Server01\XFER\Cory
<body>
<br></br>" |
Out-File "C:\APPS\Delete Folder - Cory\CoryHtmlReport.html"
Send-MailMessage -SmtpServer mail.company.com -to cubam1@company.com -from cubam1@company.com -Subject "Folder Delition" -Body $CoryReportHtml -BodyAsHtml = $true -Attachments "C:\APPS\Delete Folder - Cory\CoryHtmlReport.html"
如果您想將 html 作為附件和正文發送,請嘗試使用 Tee-Object 將 output 以及您的 $CoryReportHtml 變量發送到文件。
此外,我沒有在任何地方看到 $header 定義,因此將其從您的 ConvertTo-Html 中刪除。 我認為您的 Precontent 也需要放在此處的字符串 @" "
#Time when the email is sent
$emailTime = (Get-Date).ToString('MM/dd/yyyy')
#Locate Folders older than 30 days
$CoryReportHtml = Get-ChildItem '\\Server01\XFER\Cory' -Directory |
Sort-Object LastWriteTime -Descending |
Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} |
Select-Object Name, LastWriteTime |
ConvertTo-Html -PreContent @"
<h2>Folders older than 30 days</h2>
<div>
Folders were removed on - $emailTime
<br></br>
Location: \\Server01\XFER\Cory
</div>
<br></br>
"@ | Tee-Object -FilePath 'C:\APPS\Delete Folder - Cory\CoryHtmlReport.html' | Out-String
$mailParams = @{
SmtpServer = 'mail.company.com'
to = 'cubam1@company.com'
from = 'cubam1@company.com'
Subject = 'Folder Delition'
Body = $CoryReportHtml
BodyAsHtml = $true
Attachments = 'C:\APPS\Delete Folder - Cory\CoryHtmlReport.html'
}
Send-MailMessage @mailParams
它現在正在工作我添加了 $CoryReportHtml = $CoryReportHtml -join "" 它能夠發送為 HTML:D 謝謝!
由於標志-Attachments
,它被作為附件發送。 我要做的是刪除這段代碼| Out-File "C:\APPS\Delete Folder - Cory\CoryHtmlReport.html"
| Out-File "C:\APPS\Delete Folder - Cory\CoryHtmlReport.html"
只需將$CoryReportHtml
變量作為正文傳遞並以這種方式嘗試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.