2017-08-31 9 views
-1

フォルダ内でファイルを受け取ったときに電子メールを送信するために作成したPowerShellスクリプトを使用しています。私が抱えている問題は、監視されているフォルダパスの中に、送信された電子メール本文のハイパーリンクを破るパスにスペースがあることです。どのようにしてハイパーリンクを壊さないようにスペースを含めることができますか。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

は、ファイル名の例を与えることができますか?あなたのコードは本当に助けにはなりません(また、複数の 'Get-Date'呼び出しでかなり複雑に見えます) – TheIncorrigible1

+0

これは電子メールの本文がどのように見えるかです:' [11:51:26] \t Test Claim 40791826 072117 Coversheet.pdfは\\ vavm \ FTP \ K NW \ Incomingに到着し、M:\ H_Audits \ Original Bills \ 2017 \ Aug 2017 \ Aug 31 2017 'にコピーされました\ ** \\ vavm \ FTP \ K * * ** \\ vavm \ FTP \ K NW \ Incoming ** – SikRikDaRula

+0

の代わりにどのような方法でメールを作成/送信しますか? 'Send-MailMessage'? – TheIncorrigible1

答えて

-2

私は単にオープンを追加することによってこの問題を解決することができましたし、パス名を中心に山形を閉じました。以下のコードの<$(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'))") 
1

TheIncorrigible1は、あなたがこのhyperlinkgあるという見通しを伝えるためにHTMLタグが欠落している前述のように:

$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 
+0

前述のように、Outlookはパスファイル名でテキストを自動的に変換しますが、スペースがある場合は最初のスペースで切り捨てられます。また、私は監視されている数百のフォルダを持っています。以前はhrefリンクを追加しようとしましたが、動作しません。 – SikRikDaRula

関連する問題