发送邮件正文中的powershell换行符



如何让Send-MailMessage在邮件正文中添加新行? 一个单独的PowerShell脚本生成一些文件,我将内容读入变量并将其作为正文发送,如下所示:

$fileContent = Get-Content -Path $file | Out-String
Send-MailMessage -BodyAsHtml -Body $fileContent -From $f -SmtpServer $s -To $t -Subject $s -Verbose

$fileContent目前将拥有

`r`n 

字符。当您打开文件时,它有新行。但是当我转换为字符串并发送电子邮件时,它都在一行上。我尝试像这样替换:

$fileContent -replace  "`r`n","<br />"
$fileContent -replace  '`r`n','`r`n`r`n`r`n'

如果有人能帮忙,我将不胜感激,谢谢!

以下是您可以尝试的一些方法:

  1. 使用-BodyAsHtml开关
  2. 使用<br />(中断( html 标记

例如:

powershell -ExecutionPolicy ByPass -Command Send-MailMessage -BodyAsHtml -SmtpServer 'myemail.server.com' -To 'Mr To <to@server.com>' -From 'Mr From <from@server.com>' -Subject 'Powershell BodyAsHtml' -Body 'I am just adding some random words here<br />and here also Line 2.<br />And also here Line 3.<br />and one more time Line 4.<br />EOF<br />'"

PowerShell 换行符指示器为 'n (反引号-n(