send-mailmessage用System.String []替换html样式标签

时间:2015-07-31 13:18:26

标签: html email powershell-v2.0

我正在尝试使用send-mailmessage在powershell(v2)中发送电子邮件。

我运行MySQL查询,并将其转换为html,如下所示:

$htmlbody = $mysqlresult | `
ConvertTo-Html -property field1, `
field2, `
field3 `
-pre "<style>table{border: 3px solid #000000;}</style>"

然后我发送电子邮件:

Send-MailMessage -to "$ToAddress" `
    -From "$FromAddress" `
    -Subject "Subject Line" `
    -BodyasHtml "$htmlbody" `
    -SmtpServer "$SMTP"   

电子邮件发送,我在表格中收到包含数据的电子邮件。 但是...部分被替换为System.String[]

据我所知,那里没有“有趣”的人物。任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

在将对象导入ConvertTo-Html之前选择属性:

$htmlbody = $mysqlresult |
            select field1, field2, field3 |
            ConvertTo-Html -Pre '<style>...</style>'

根据字段实际具有的数据类型,您可能需要首先将字符串数组分解为字符串,例如通过calculated properties。例如:

$htmlbody = $mysqlresult |
            select field1, field2, @{n='field3';e={$_.field3 -join ' '}} |
            ConvertTo-Html -Pre '<style>...</style>'