2
나는 일반 텍스트 파일 에서 적절한 테이블 형식으로 이메일을 얻기 위해 파워 쉘 코드 아래 사용하고

경우 output.txt :이메일 본문 형식 및 수정

code.ps1

$smtpServer = "[email protected]" 
$smtpFrom = "[email protected]" 
$smtpTo = "[email protected]" 
$messageSubject = "Data" 

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

$body = Get-Content C:\output.txt | Out-String 
$body = $body -replace '^(\S+)\s+(\S+)\s+(\S+)', '<tr><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$1</th><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$2</th><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$3</th></tr>' 
$body = $body -replace '\n(\S+)\s+(\S+)\s+(\S+)', '<tr><td style = "border: 1px solid black; padding: 5px;">$1</td><td style = "border: 1px solid black; padding: 5px;">$2</td><td style = "border: 1px solid black; padding: 5px;">$3</td></tr>' 
$body = '<body><table style = "border: 1px solid black; border-collapse: collapse;">' + $body + '</table></body>' 
$message.Body = $body 

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

I 이메일 구조 변경시 다음과 같이 변경하고 싶습니다.

변경 1 :

이메일 테이블 형식 아래에서오고있다 :

OPERATINGSYSTEM   PROJECTSERVER1 PROJECTSERVER2 
Windows     1.36    4.42 
Linux12     2.78    5.76 
MacOS      3.45    6.39 
Ubuntu     4.12    0.00 
Android     0.00    3.46 
FreePhysicalMemory  30.12   31.65 
TotalVisibleMemorySize 48.00   48.00 
CPULoadPercentage   2    4 

하지만, 내가 어떻게는 다음과 같은 중앙에 2 층과 3 열의 값을 정렬 할 수 있습니다?

OPERATINGSYSTEM   PROJECTSERVER1 PROJECTSERVER2 
Windows      1.36    4.42 
Linux12      2.78    5.76 
MacOS       3.45    6.39 
Ubuntu      4.12    0.00 
Android      0.00    3.46 
FreePhysicalMemory   30.12   31.65 
TotalVisibleMemorySize  48.00   48.00 
CPULoadPercentage    2    4 

2 변경 : 내가 이메일 본문에 테이블의 외부 끝에서 노트 아래에 추가 할 수있는 방법

:

All memory values are in GB. 

Note: This is an automatically generated email, please don't reply to it. 

3 변경 :

내가 어떻게 보낼 수 있습니다 이 CC를 여러 수신자에게 이메일로 보냅니다. $ smtpTo = "administrator @ abc.com, dbadmin @ abc.com ..."과 같은 쉼표로 구분 된 이메일 ID를 추가 할 수 있습니까? ..?

답변

2

Change1는 :

$body = $body -replace '\n(\S+)\s+(\S+)\s+(\S+)', '<tr><td style = "border: 1px solid black; padding: 5px;">$1</td><td style = "border: 1px solid black; padding: 5px;text-align:center;">$2</td><td style = "border: 1px solid black; padding: 5px;text-align:center;">$3</td></tr>' 

설명에

$body = $body -replace '\n(\S+)\s+(\S+)\s+(\S+)', '<tr><td style = "border: 1px solid black; padding: 5px;">$1</td><td style = "border: 1px solid black; padding: 5px;">$2</td><td style = "border: 1px solid black; padding: 5px;">$3</td></tr>' 

에서 테이블 행 정의를 변경 : 테이블 셀의 스타일 정의에 text-align:center을 추가했습니다.

2 변경 : 그냥 메일의 끝 부분에 텍스트를 추가 :

$body = '<body><table style = "border: 1px solid black; border-collapse: collapse;">' + $body + '</table><br/>All memory values are in GB.<br/><br/>Note: This is an automatically generated email, please don't reply to it.<br/></body>' 

3 변경 : http://msdn.microsoft.com/en-us/library/vstudio/h1s04he7(v=vs.100).aspx에 따르면 당신이 올바른지 : 예 ,

+0

로 구분 된 여러 이메일 adresses를 추가 .. 오류를 발견하고 수정했습니다 .. 지금 완벽하게 작동하고 있습니다. 오카소가 많이 감사합니다 !! .. 세 가지 변경 사항이 모두 성공적으로 완료되었습니다! :) – Sunny