我有一个脚本,它会查找文件夹以获取更新,如果有任何更新,我会发送一封电子邮件。如何将电子邮件正文更改或转换为URL或HTML链接而不是文本?
以下路径和服务器就是示例。
这是我的剧本:
Param (
[string]$Path = "\\Desktop\Myfolder\status updates",
[string]$SMTPServer = "smtp.myfolder.com",
[string]$From = "Admin@me.com",
[string]$To = "Admin@me.com",
[string]$CC = "Admin@me.com",
[string]$Subject = "New Status Report"
)
$SMTPMessage = @{
To = $To
Cc = $cc
From = $From
Subject = "$Subject"
Smtpserver = $SMTPServer
}
$File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge [datetime]::Now.AddMinutes(-10) }
If ($File)
{ $SMTPBody = "`The following files have recently been added/changed. Please copy and paste the following link to Windows Explorer:`n`n"
$File | ForEach { $SMTPBody += "$($_.FullName)`n" }
Send-MailMessage @SMTPMessage -Body $SMTPBody
答案 0 :(得分:3)
PowerShell提供Convert-ToHTML
cmdlet,非常适合您的需求。
只需将您的内容$SMTPBody
加入其中即可。您甚至可以应用CSS文件使电子邮件看起来更好一些。
$HTMLBody = ConvertTo-HTML -body $SMTPBody -CSSUri http://www.csszengarden.com/examples/style.css
然后在电子邮件中引用$HTMLBody
。
天空是CSS的极限。如果您想阅读更多内容,I covered this topic in a blog post。这是我们可以创造的一个例子。
在此示例中,我们使用-Pre
和-Post
参数添加表格上方和下方的内容。该表是通过使用Convert-ToHTML
属性将对象传递到-As Table
来创建的。这个只有四个参数的cmdlet可以创建有价值的网页输出!
答案 1 :(得分:1)
将$SMTPBody
值设置为包含HTML的字符串,然后将-BodyAsHTML
开关添加到Send-MailMessage
命令。
...
$SMTPBody = "<em>This is italicised</em>"
...
Send-MailMessage -Body $SMTPBody -BodyAsHTML -To ...