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>-当用户检查邮件时不起作用
有人可以建议我还能用什么来获得新行或脚本中需要的任何修改吗?
我不确定这些其他用户是如何让 `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)
(根据我的评论)
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)
| 归档时间: |
|
| 查看次数: |
21201 次 |
| 最近记录: |