gpt4 book ai didi

arrays - PowerShell 电子邮件阵列

转载 作者:行者123 更新时间:2023-12-01 14:45:28 27 4
gpt4 key购买 nike

我对数组在 outlook 2013 中通过电子邮件发送和查看时丢失其格式的方式有疑问

格式化的数组在 PowerShell 中看起来像这样

vServer                                          State             Connection                                                          
------- ----- ----------
vServer-LB-1 UP 0
vServer-LB-2 DOWN 0
vServer-LB-3 UP 0
vServer-LB-4 UP 0
vServer-LB-5 UP 0
vServer-LB-6 UP 2

这就是我格式化数组的方式(我已经尝试通过电子邮件发送未格式化的数组,但它仍然是错误的)

$formatserver =  @{Expression={$_.name};Label="vServer";width=48}, `
@{Expression={$_.state};Label="State";width=17}, `
@{Expression={$_.establishedconn};Label="Connection"}

$Array = $server | Format-Table $formatserver

但是,当通过电子邮件发送时(不太像这样,但格式不正确)。

vServer State Connection
------- ----- ----------
vServer-LB-1 UP 0
vServer-LB-2 DOWN 0
vServer-LB-3 UP 0
vServer-LB-4 UP 0
vServer-LB-5 UP 0
vServer-LB-6 UP 2

这是发送邮件的代码

$from = 'Reporting <Support@Me.com>'
$to = 'me@me.com'
$subject = 'Report'
$body = $Array | Out-String
$smtpServer = 'mail.me.com'

$msg = New-Object Net.Mail.MailMessage($from, $to, $subject, $body)
#$msg.IsBodyHTML = $true
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($msg)

请注意我已经尝试了很多|的组合输出字符串$msg.IsBodyHTML = $true

最佳答案

您可以使用 <pre>HTML 中标记保持电子邮件中的间距。

$body = $Array | Out-String | %{"<pre>"+$_+"</pre>"}

确保您设置了 IsBodyHTML作为$true .

注意:表格格式仅限于您的 PowerShell 的缓冲区外壳/控制台。因此,如果您的表格宽度大于 Shell/控制台上的缓冲区宽度,则表格将不会完整显示。

要解决这个问题,您可以在脚本的开头使用以下命令设置 shell 缓冲区:

$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.height = 3000
$newsize.width = 1500
$pswindow.buffersize = $newsize

或转到 File >> Properties在您的外壳/控制台上,并更改以下属性。

enter image description here

关于arrays - PowerShell 电子邮件阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com