首页 > 解决方案 > 来自文件的powershell电子邮件正文

问题描述

我正在尝试使用 powershell 将文本文件的内容读入字符串变量,以便使用它来发送电子邮件(通过 smtp)。

使用Get-Content我将文件的内容读入变量没有问题:

$body = Get-Content 'C:\somewhere\some-file.html'

问题是

Send-MailMessage -To [recipient] -From [sender] -Subject [subject] -Body $body -SmtpServer [ip address]

消息失败

无法将 'System.Object[]' 转换为 'Body' 参数所需的 'System.String'。不支持指定的方法。

如何将文件内容作为一个变量放入变量中String?我已经尝试通过管道将变量转换为结果Object[]数组,但没有成功。String$bodyConvert-String

编辑

对于任何寻找单线的人,在下面马克的回答的帮助下,它是:

Send-MailMessage -To recipient@domain.com -From sender@domain.com -Subject "Test" -Body (Get-Content 'C:\somewhere\some-file.html' | Out-String) -SmtpServer 123.456.789.012 -BodyAsHtml

标签: powershell

解决方案


尝试:

$body = Get-Content 'C:\somewhere\some-file.html' | Out-String

问题可能是Get-Content正在创建一个字符串数组,而-Body参数需要一个字符串。

我认为该Out-Stringcmdlet 会将其转换为单个字符串。


推荐阅读