powershell: использование get-content в качестве тела письма smtp - PullRequest
2 голосов
/ 23 сентября 2011

Я использую PowerShell для отправки SMTP-почты.Тело письма из файла.Проблема в том, что когда я получаю это письмо, оно удаляет все пробелы и переводы строк, поэтому выглядит уродливо.

Клиент Outlook не удаляет разрывы строк.

Мой код выглядит следующим образом:

$smtpserver = "smtpserver"
$from="email1@domain.com"
$to="email2@domain.com"
$subject="something"
$body= (Get-Content $OutputFile )
$mailer = new-object Net.Mail.SMTPclient($smtpserver)
$msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body)
$msg.IsBodyHTML = $true
$mailer.send($msg)

Я даже пытался использовать get-content с -encoding ASCII и несколькими другими, но без помощи.Может кто-нибудь помочь, пожалуйста?

-

спасибо

Ответы [ 4 ]

11 голосов
/ 26 сентября 2011

Нашел ответ:

использовать out-строку при чтении файла.т.е.

$body= (Get-Content $OutputFile | out-string )
3 голосов
/ 23 сентября 2011

Добавить тег разрыва строки HTML на каждом конце строки:

$body= (Get-Content $OutputFile) -join '<BR>'
1 голос
/ 21 июня 2016

Для меня работало преобразование контента в HTML следующим образом:

$html = $result | ConvertTo-Html | Out-String
Send-MailMessage -Credential $mycreds -From "" -To "" -BodyAsHtml $html -Encoding ASCII -Subject "Test" -SmtpServer '' -Port 25
0 голосов
/ 23 сентября 2011

Если вы используете PowerShell v2.0, попробуйте Send-MailMessage: http://technet.microsoft.com/en-us/library/dd347693.aspx

Кодировка по умолчанию здесь будет ASCII.Таким образом, чтобы иметь возможность сохранить кодировку, вы можете попытаться найти кодировку файла и затем установить соответствующую кодировку.

Чтобы найти кодировку файла, используйте скрипт здесь.http://poshcode.org/2059

Теперь объедините вышеуказанную функцию с Send-MailMessage.Например,

send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>", "User03 <user03@example.com>" -subject "Sending the Attachment" -body (Get-Content C:\somefile.txt) -dno onSuccess, onFailure -smtpServer smtp.fabrikam.com -encoding (Get-FileEncoding C:\somefile.txt)

Помните, Get-FileCoding не является встроенным командлетом.Вам необходимо скопировать его из ссылки по почтовому индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...