我正在使用我创建的powershell脚本,以便在文件夹中收到文件时向用户发送电子邮件。我遇到的问题是正在观看的一些文件夹路径在路径中有一个空格,打破了发送的电子邮件正文中的超链接。如何包含空格,以免破坏超链接。
我用它来获取路径名:
$(split-path $Event.SourceEventArgs.FullPath)
要添加到我正在使用的电子邮件正文的代码如下:
$global:newFiles.Add("`n[$(Get-Date -Format HH:mm:ss)]`tNew file named $($Event.SourceEventArgs.Name) arrived in $(split-path $Event.SourceEventArgs.FullPath) and was copied to $($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).AddDays(1 + $(1,2 -eq 7 - [int]$formatteddate.dayofweek) ).ToString('MMM d yyyy'))")
以下是电子邮件的发送方式:
while ($watcher.EnableRaisingEvents -or $global:newFiles.Count -gt 0) {
#Sleep
Start-Sleep -Seconds 60
if($global:newFiles.Count -gt 0) {
#Convert list of strings to single string (multiline)
$smtpbody = $global:newFiles
$smtp.Send($smtpFrom, $smtpTo, $smtpSubject, $smtpBody)
#Mail sent, Empty array
$global:newFiles.Clear()
}
}
答案 0 :(得分:1)
正如TheIncorrigible1所提到的,你错过了HTML标签,告诉Outlook这是一个超链接:
$Body = "<a href='\\vavm\FTP\K NW\Incoming'>\\vavm\FTP\K NW\Incoming</a>"
Send-MailMessage -To $MailTo -SmtpServer $MailServer -From $MailFrom -Body $MailBody -BodyAsHtml -Subject $MailSubject
答案 1 :(得分:-2)
我能够通过在路径名称周围添加一个开放和封闭的V形图来简单地解决这个问题。<$(split-path $Event.SourceEventArgs.FullPath)>
以下全部代码:
$global:newFiles.Add("`n[$(Get-Date -Format HH:mm:ss)]`tNew file named $($Event.SourceEventArgs.Name) arrived in <$(split-path $Event.SourceEventArgs.FullPath)> and was copied to $($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).AddDays(1 + $(1,2 -eq 7 - [int]$formatteddate.dayofweek) ).ToString('MMM d yyyy'))")