0
  • 项目清单

这是一个奇怪的。$body 与

添加 30 - 100 行的循环: $body += "+ $stuff `n"

问题是如果我在 $body 中使用加号 (+),它会占用正文中的每一行并将其拆分为行大小的一半并在下一行继续:

例子,

该行实际上是:

  • 月亮|今天好漂亮|现在买金子,很快就会变得富有

它被更改为(stackoverflow 将我的 (+) 更改为项目符号。请注意,在接下来的两行前面有一个加号)。

  • 月亮|今天好漂亮|现在买黄金

  • 月亮|很快就会真正富有

如果我将加号 (+) 更改为 Add 一词,我将进入电子邮件正文:

加月亮|今天发光真好|现在买金子,很快就会真正富有

我想使用加号 (+),因为这与另一个程序在电子邮件正文中使用 +/- 行的格式相同。任何想法如何让这个工作?

    function mailalert($body) {
        $SMTPserver = "mailhost.domain.com"
        $from = "replies-disabled@domain.com"
        $to = "joe@domain.com"
        $subject = "Report for Stuff"
        $mailer = new-object Net.Mail.SMTPclient($SMTPserver)
        $msg = new-object Net.Mail.MailMessage($from, $to, $subject, $body)
        $mailer.send($msg) 
    }
4

2 回答 2

0

好的,我放弃了 Net.Mail.SMTPclient 并决定使用 html 作为正文来解决这个问题:

    function mailalert($diff) {
        $SMTPserver = "mailhost.domain.com"
        $smtp = New-Object system.Net.Mail.SmtpClient($SMTPserver)
        $mail = New-Object System.Net.Mail.MailMessage
        $mail.From = "replies-disabled@domain.com"
        $mail.To.Add("joe@domain.com")
        $mail.Subject = "Report for stuff"
        $mail.Body = $diff
        $mail.IsBodyHtml = $true
        $smtp.Send($mail)
    }

我将所有使用的 `n 更改为
和 tada 它可以工作。为什么另一种方式不起作用仍然有点令人困惑。我看到另一个问题,其中包含加号的电子邮件地址正在被解决,所以我想知道修复这个问题是否会破坏这个问题。:)

于 2012-08-17T19:16:54.743 回答
0

尝试:

$body = "$body $stuff `n"

在你的循环中。

使用“`”转义任何麻烦的字符。

$body = "$body `+ $stuff `n"
于 2012-08-17T18:51:12.360 回答