Powershell电子邮件:如何在电子邮件正文中添加新行?

fat*_*ael 3 email powershell newline

Powershell的新手。编写了运行正常的powershell脚本,但是在发送邮件时,它在正文中未显示换行符。以下是配置:

$EmailFrom = "monitoring@mydomainname.no"
$EmailTo = "fatherazrael@tcs.com"
$Subject = "Disk Space Low: $server"

$Body = "Server Name:  $server, <NEED NEW LINE> Drive: C,  <NEED NEW LINE>  Total Size: $sizeGB,  <NEED NEW LINE> Space Left: $freeSpaceGB"

$SMTPServer = "scan.opinergo.fn"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("<From mail ID>", "Password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)   
Run Code Online (Sandbox Code Playgroud)

在正文中我用下列代替; 搜索:

1)%0d%0a-用户检查邮件时不起作用

2)\ n-用户检查邮件时不起作用

3)<br>-当用户检查邮件时不起作用

有人可以建议我还能用什么来获得新行或脚本中需要的任何修改吗?

Arv*_*wen 8

我不确定这些其他用户是如何让 `n 创建一个新行的,但我永远无法让它工作......

相反,我最终做了以下...

  • 使用-BodyAsHtml开关
  • 使用<br />(break) 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 'Reports From Daily SQL Backup Jobs' -Body 'There was an issue backing up the databases and sending them to the virtual drive.<br />Test Line 2.<br />Test Line 3.-more on line 3<br />Test Line 4.<br />EOF<br />'"
Run Code Online (Sandbox Code Playgroud)


Tes*_*ler 5

(根据我的评论)

PowerShell换行符指示符为`n(backtick-n),因此:

$Body = "Server Name:  $server, <NEED NEW LINE> Drive: C
Run Code Online (Sandbox Code Playgroud)

变成:

$Body = "Server Name:  $server, `n Drive: C
Run Code Online (Sandbox Code Playgroud)