【问题标题】:Line breaks ignored when sending mail as plain text以纯文本形式发送邮件时忽略换行符
【发布时间】:2011-10-04 13:53:01
【问题描述】:

我有一个类似“嗨,\r\n 这是测试\r\n 谢谢”这样的文本我正在使用 MailMessage 类发送邮件。我已将“IsBodyHtml”属性设置为 false。问题是我收到的邮件没有换行符。你能告诉我我错过了什么吗?

【问题讨论】:

标签: c# asp.net mailmessage


【解决方案1】:

使用Environment.NewLinemsdn 代替\r\n。

【讨论】:

    【解决方案2】:

    我们遇到了同样的问题,但是如果您在 String 中一次性定义您的消息,而不是在 StringBuilder 中,您可以像这样定义您的消息:

    string message = string.Format(
    @"First Line: {0}
    Second Line: {1}
    ThirdLine: {2}", firstValue, secondValue, thirdValue);
    

    像这样定义消息正文,并设置 IsBodyHtml = false,将为您提供所需的新行。

    否则,使用 StringBuilder

    var sb = new StringBuilder();
    sb.AppendLine("FirstLine");
    sb.AppendLine("SecondLine");
    

    【讨论】:

    • MailMessage 上关于 IsBodyHtml = false 的提示是关键! IsBodyHtml = true 将忽略任何空格换行符。
    【解决方案3】:

    这是 Outlook 中的一项功能,您可以在 Outlook 中将其关闭。转到选项 - 邮件 - 并在“消息格式”下取消选中“删除纯文本消息中的多余换行符”。

    另一种解决方案是在发送邮件时在每行末尾添加三个空格。这似乎让 Outlook 接受它不是额外的换行符。

    【讨论】:

      【解决方案4】:

      如果您从 Outlook 阅读邮件,可能是 Outlook 正在删除换行符,认为它们是额外的换行符。您是否尝试过从其他软件或网络邮件中读取邮件?

      【讨论】:

        【解决方案5】:

        我认为,为了能够在邮件中包含换行符,而不仅仅是简单的测试,您需要将 body html 设置为 true。

        【讨论】:

        • 你可以有换行符,你不能有2个换行符和一个带句点的行,没有别的。该特定序列表示消息的结束,SMTP 服务器将交叉眼。
        • 我认为发送 html 电子邮件更容易。有人(很可能来自营销/管理部门)在看到纯文本邮件时会要求发送一封漂亮的电子邮件,而您只需要重新发送即可。但是,我了解在某些情况下只能发送纯文本电子邮件。
        【解决方案6】:

        这可能发生的一个更棘手的原因是我不得不处理:

        • 您的邮件服务器会处理外发邮件并将 html 版本添加到您原本纯文本的邮件中

        【讨论】:

          【解决方案7】:

          我遇到了一个类似的问题,我的大部分换行符都在工作,但一个没有。如果我点击回复未显示换行符的电子邮件,回复下方的原始电子邮件文本将显示换行符(因此这表明这是一个 Outlook 问题)。我尝试了 Environment.NewLine 的推荐答案,但没有改变任何东西。就我而言,在我想要新行的语句末尾添加一个句点,然后放入 \r\n 就可以了。根据我在此讨论中发布的先前链接,Outlook 正在使用一些规则来过滤换行,并且在开始此讨论的问题中,我注意到您的句子末尾没有句点。

          【讨论】:

            【解决方案8】:

            我正在通过 PowerShell 脚本发送电子邮件通知,并且在 Outlook 中查看邮件时也没有出现任何换行符。 对我来说 .ps1 文件中的解决方案是这样的:

            $emailMessage.Body = "First Line" + "`r`n" + "Second Line"
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-10-19
              • 2015-09-19
              • 2021-04-12
              • 2010-09-07
              • 2016-03-07
              • 2012-04-29
              • 2015-03-09
              • 1970-01-01
              相关资源
              最近更新 更多