текст письма powershell из файла

#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 для получения содержимого