#powershell
#powershell
Вопрос:
Привет, ребята, я пытаюсь отправить вывод команды echo в файл журнала в виде тела электронного письма, используя Send-MailMessage.
Теперь я могу отправлять только файл журнала, но я хочу отправить содержимое этого журнала в теле письма.
Как это сделать?
В настоящее время я использую эту строку:
Send-MailMessage -from donotreply@company.com -to "nobody@company.com" -subject "test" -body "test" -Attachment "C:log.log" -smtpServer smtp.Server.com
Ответ №1:
Вам нужно прочитать содержимое файла журнала и использовать его для параметра Body
# -Raw reads it as single multiline string, including newlines
$body = Get-Content -Path 'C:log.log' -Raw
Send-MailMessage -Body $body ...
Если почта должна быть HTML (с переключателем -BodyAsHtml
), вам необходимо преобразовать новые строки в <br />
like
# without -Raw you get the content as string array
$body = (Get-Content -Path 'C:log.log') -join '<br />'
Send-MailMessage -Body $body -BodyAsHtml ...
Комментарии:
1. Это сработало, так что теперь я столкнулся с новой проблемой 🙂 Я хочу запланировать этот скрипт в планировщике задач, и для no он не работает. Он переходит в состояние запущено, и я заканчиваю его каждый раз. Может быть, какие-то предложения?
2. @user3391373 Это может быть вызвано рядом причин, таких как проблема с правами доступа у пользователя, выполняющего задачу, для доступа к файлу журнала. Пожалуйста, отправьте новый вопрос для этого и объясните проблему и ошибки, которые вы видите (если таковые имеются)