#powershell
#powershell
Вопрос:
Я пытаюсь прочитать содержимое текстового файла в строковую переменную с помощью powershell, чтобы использовать его для отправки электронного письма (через smtp).
При использовании Get-Content
у меня нет проблем с чтением содержимого файла в переменную:
$body = Get-Content 'C:somewheresome-file.html'
Проблема в том
Send-MailMessage -To [recipient] -From [sender] -Subject [subject] -Body $body -SmtpServer [ip address]
ошибка с сообщением
Не удается преобразовать ‘System.Объект[]’to’System.Строка’, требуемая параметром ‘Body’. Указанный метод не поддерживается.
Как я могу перенести содержимое файла в переменную в виде String
? Я попытался преобразовать результирующий Object[]
массив в String
, передав $body
переменную с Convert-String
, но безуспешно.
Редактировать
Для всех, кто ищет однострочный текст, с помощью приведенного ниже ответа Марка, вот он:
Send-MailMessage -To recipient@domain.com -From sender@domain.com -Subject "Test" -Body (Get-Content 'C:somewheresome-file.html' | Out-String) -SmtpServer 123.456.789.012 -BodyAsHtml
Ответ №1:
Попробуйте:
$body = Get-Content 'C:somewheresome-file.html' | Out-String
Вероятно, проблема в том, что Get-Content
создается массив строк, а -Body
параметр ожидает одну строку.
Out-String
Командлет, я думаю, преобразовал бы его в одну строку.
Комментарии:
1. Из PSv3 вы могли бы использовать
-raw
параметр Get-Content для получения содержимого