【发布时间】:2013-11-08 01:12:35
【问题描述】:
我有一个文本文件 output.txt,其中包含以下内容:
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
我想在电子邮件中将 output.txt 的内容作为正文发送到 Windows server 2008 R2 中的格式化 HTML 表格中。我正在尝试使用下面的代码,但它对我不起作用..我在下面哪里弄错了?
$smtpServer = "sunny@abc.com"
$smtpFrom = "process@abc.com"
$smtpTo = "administrator@abc.com"
$messageSubject = "Servers Memory"
$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
$message.Subject = $messageSubject
$message.IsBodyHTML = $true
$message.Body = Get-Content C:\Logs\output.txt
$style = "< style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "< /style>"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($message)
EDIT1
当我修改我的代码如下:
$smtpServer = "sunny@abc.com"
$smtpFrom = "process@abc.com"
$smtpTo = "administrator@abc.com"
$messageSubject = "Servers Memory"
$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
$message.Subject = $messageSubject
$message.IsBodyHTML = $true
$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"
$message.Body = "<head><pre>$style</pre></head>"
$message.Body += Get-Content C:\Logs\output.txt
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($message)
我收到这样的邮件:
OPERATING SYSTEM SERVER1 SERVER2 Windows 1.36 4.42 Linux 2.78 5.76 MacOS 3.45 6.39 Android 0.00 3.46 Ubuntu 4.12 0.00 FreePhysicalMemory 30.12 31.65 TotalVisibleMemorySize 48.00 48.00
注意:我使用的是 Powershell v1.0
【问题讨论】:
-
1. “不工作”以哪种方式?您越具体,就越有可能有人能够识别问题。 2. 你对 $style 的意图是什么?您将其值设置为一堆 CSS 代码,但您没有对它做任何事情。似乎在最后一个
$style = [...]语句和$smtp = [...]语句之间应该有类似$message.Body = '<head>' + $style + '</head>' + $message.Body的东西。 3. output.txt 不包含 HTML。它应该有HTML表格数据,否则格式将是错误的。这就是“不工作”吗?
标签: powershell powershell-2.0 powershell-1.0