2016-09-08 3 views
2

MailMessage 개체를 사용하여 PowerShell로 전자 메일을 보내려고합니다. 스크립트는 Import-CSV을 사용하여 파일을 사용하고 ConvertTo-HTML을 본문에 사용합니다. <style> 태그를 무시하도록 보내는 전자 메일 클라이언트가 있기 때문에 일부 대체 된 HTML을 추가했습니다. | Out-File 작품과 내가 이메일 본문은보고 싶지 정확히 어떻게 보이기 때문에 나는 혼란 스러워요-replace HTML 전자 메일

$smtpServer = "x.x.x.x" 
$smtpFrom = "[email protected]" 
$smtpTo = "[email protected]" 
$messageSubject = "Weekly Student Device Repair Summary $((Get-Date).ToShortDateString())" 

$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto 
$message.Subject = $messageSubject 
$message.IsBodyHTML = $true 

$summ = Import-Csv -Path 'C:\folder\file.csv' 

$message.body = @" 
<html> 
    <body> 
    Hello,<br><br> 
    Here is your weekly repair summary.<br><br> 
     $($summ | ConvertTo-Html)<br><br> 
    Thank you,<br><br> 
    Technology 
    </body> 
<html> 
"@ 

$finalHTML = $message.body -replace "<table", "<table border='0' cellspacing='0' cellpadding='10' style='border: 1px solid black; border-collapse: collapse;'" 
$finalHTML = $finalHTML -replace "<th", "<th border='0' cellspacing='0' cellpadding='0' style='border: 1px solid black; border-collapse: collapse; padding:5px;'" 
$finalHTML = $finalHTML -replace "<td", "<td border='0' cellspacing='0' cellpadding='0' style='border: 1px solid black; border-collapse: collapse; padding:5px;'" 

$finalHTML | Out-File "c:\folder\file.html" 

$smtp = New-Object Net.Mail.SmtpClient($smtpServer) 
$smtp.Send($finalHTML) 

:

여기 내 스크립트입니다.

보내기 ": '1'인수 개수" "에 대한 과부하를 찾을 수 없습니다"와 비록

$smtp.Send($finalHTML) 오류 아웃.

내가 $smpt.Send($message)$smpt.Send($finalHTML)를 교체하는 경우, 스크립트가 실행, 이메일이는 HTML이지만, $finalHTML 중 어느 것도 적용되지 않습니다 보냅니다.

답변

1

그것의 당신은 아마 $message.body$finalHTML를 지정하고 메시지를 전달할 수 있도록 Send 방법은 매개 변수로 System.Net.Mail.MailMessage 오브젝트를하기 때문에 : 그것을했다

# .... 
$message.body = $finalHTML 
$smtp = New-Object Net.Mail.SmtpClient($smtpServer) 
$smtp.Send($message) 
+1

합니다. 고맙습니다. 나는 쏘고있는 동안 바른 길을 가고 있었다. 그러나 당신은 그것을 꼼짝 못하게했다. 다시 감사합니다. – CreedC