【问题标题】:Html format email in PowershellPowershell中的HTML格式电子邮件
【发布时间】:2019-02-21 03:41:47
【问题描述】:

Powershell 生成的电子邮件中的 HTML 正文未格式化。

cat "volumes.txt"

Checking Array  plutus  for volumes
--------------------+----------+------+-----------+----------+---------+---- 
---
Name                 Size       Online Offline     Usage      Reserve % 
Quota %
                 (MiB)              Reason      (MiB)
--------------------+----------+------+-----------+----------+---------+---- 
---
puloto-001        2048000 Yes    N/A            434035         0     100
puloto-002        2048000 Yes    N/A            380142         0     100
puloto-003        2048000 Yes    N/A            312061         0     100
puloto-004        2048000 Yes    N/A            292216         0     100

但是随后在 powershell 中以 html 格式的电子邮件发送内容,就像这样

检查 Array mhstpmanb200 的卷 检查 Array plutus 的卷 --------------------+----------+----- -+-----------+---------+---------+------- 名称 大小 Online Offline Usage Reserve % Quota % (MiB) 原因 (MiB) --------+----------+------+--- --------+---------+---------+-------- puloto-001 2048000 是 N/A 434035 0 100 puloto- 002 2048000 是 N/A 380142 0 100 puloto-003 2048000 是 N/A 312061 0 100 poloto-004 2048000 是 N/A 292216 0 100 poloto-005 2048000 是 N/A 245774 0 10 251434 0 100 puoto-007 2048000 是 N/A 241778 0 100 puoto-008 2048000 是 N/A 202305 0 100

这是我的代码

     $FILE = "volumes.txt";
     $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 = "$(cat $FILE)"
     $smtp = New-Object Net.Mail.SmtpClient($smtpServer)`enter code here`
     $smtp.Send($message)

我在这里做错了什么?

谢谢

【问题讨论】:

  • 您对.Body 的第二个分配覆盖了第一个。

标签: powershell


【解决方案1】:

您是否要在邮件中发送“volumes.txt”数据?那么这就是解决方案。

Get-Content ".\volumes.txt"| ConvertTo-Html |Out-File volumes.html
$message.body = Get-Content ".\volumes.html"

【讨论】:

  • 谢谢,但 ConverTo-HTML 显示进程列表而不是文件内容。 C:\cygwin64\home\user1\volumes.txt C:\cygwin64\home\user1 volumes.txt C Microsoft.PowerShell.Core\FileSystem 198 79 C:\cygwin64\ home\user1\volumes.txt C:\cygwin64\home\user1 volumes.txt C Microsoft.PowerShell .Core\FileSystem 199 57
  • 如果要邮寄文件内容:Get-Content ".\volumes.txt"| ConvertTo-Html |Out-File volumes.html 现在,您必须邮寄“Volume.html”的内容 $body_mail = Get-Content ".\Volume.html"
猜你喜欢
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2017-09-22
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
相关资源
最近更新 更多