2016-10-06 3 views
0

매일 타사 응용 프로그램에서 파일을 가져 와서 상대방에게 복사 된 모든 파일을 전자 메일로 보냅니다. html 파일을 생성 할 때 내 결과는 예상대로이지만 html과 동일한 결과를 내 전자 메일 본문에 포함하려고 시도하면 폴더 경로 & 대신 파일 번호가 생성됩니다. 이 문제를 일으키는 원인이 확실하지 않습니다. 나를 안내 해줘. 이미 수동으로 HTML을 생성하는 반면HTML 본문에 HTML 결과가 예상대로 포함되지 않았습니다.

$head = @" 
<Title>Files in folder</Title> 
<style> 
Body { font-family: "Verdana", "Geneva", sans-serif; background-color:#F0E68C; } 
table { border-collapse:collapse; width:50% } 
td  { font-size:12pt; border:1px #0000FF solid; padding:5px 5px 5px 5px; } 
th  { font-size:14pt; text-align:left; padding-top:5px; padding-bottom:5px; background-color:#0000FF; color:#FFFFFF; } 
name tr{ color:#000000; background-color:#0000FF; } 
</style> 
"@ 

#file path 
$path = "D:\\Temp" 
$root = (Get-Item $path).FullName 

#output html as string 
$html = Get-ChildItem $root -recurse -include *.xlsx, *.docx, *.txt, *.csv | 
     where { $_.PSIsContainer -eq $false } | % 
     { 
     $fPath = $_.FullName.Remove(0, $root.Length + 1) 
     Write-Output "<a href=`"$fPath`">$fPath</a><br />" 
     } | ConvertTo-Html -Head $head | Out-String 

#email 
$email = @{ 
To = "[email protected]" 
from = "[email protected]" 
BodyAsHtml = $True 
Body = $html 
Subject = "Files in the folder" 
SmtpServer = "mailserver" 
} 

Send-MailMessage @email 
+0

대부분의 전자 메일 클라이언트에 의해 해석 CSS의 및 HTML 브라우저가 이해 무엇의 일부분입니다 물품. https://www.campaignmonitor.com/css/를 참조하십시오. –

답변

1
  1. ConvertTo-Html는 HTML에 물체를 변환합니다.
    $body 변수에 넣고 -body 매개 변수를 ConvertTo-Html으로 사용합니다. 단지 Get-ChildItem
  2. PS3.0의 +에 $path를 사용 $root 필요가 없습니다
  3. 그래서 where
  4. 그것은 실패하지 않기 위해 항상 -LiteralPath을 사용하는 것이 더 안전을 필요하지 않은 파일 만 나열하는 Get-ChildItem에서 -File 스위치가 경로에 []은 와일드 카드 지정자로 해석됩니다. PowerShell에서
  5. \ 내부 문자열을 이스케이프 할 필요가 없습니다, 단지 'D:\Temp'

$body = Get-ChildItem -Literal $path -Recurse -File -Include *.xlsx, *.docx, *.txt, *.csv | 
     ForEach { 
      $fPath = $_.FullName.Substring($path.Length + 1) 
      "<a href=""$fPath"">$fPath</a><br>" 
     } 
$html = ConvertTo-Html -Head $head -Body $body | Out-String 
관련 문제