【问题标题】:C# - Send HTML email with line breaksC# - 发送带有换行符的 HTML 电子邮件
【发布时间】:2011-10-23 09:53:32
【问题描述】:

我正在尝试使用 System.Net.Mail.MailMessage 类从我的 C# 应用程序发送电子邮件。对于电子邮件的正文,我想包含换行符以创建单独的文本块。如何让 Outlook 等电子邮件客户端在向用户显示包含 HTML 的电子邮件时尊重换行符?我应该在电子邮件正文中插入哪些字符,以便将换行符视为换行符?

注意:我的电子邮件正文是纯文本,不是 HTML。

【问题讨论】:

  • 为了获得最佳效果,请显示您的代码。
  • Send Email in HTML Format 的可能重复项
  • 如果您解释一下“换行符”和“文本块”的含义,将会有所帮助。在我看来,这些是不同的东西。
  • @Dour - “文本块”是一个糟糕的词选择。我只是想在电子邮件文本中嵌入一个换行命令。顺便说一句,电子邮件的文本不是 HTML。它是纯文本。

标签: c# email


【解决方案1】:

您需要插入 HTML 换行符,即<br/>

【讨论】:

  • 我可能不清楚。我在电子邮件正文中发送常规文本,而不是 HTML。因此,简单地将
    嵌入正文中不会导致电子邮件客户端 (Outlook) 发出换行符。
【解决方案2】:

换行符是空白字符,所有空白字符在 HTML 中都被解释为空格。

您可以使用中断标签 (<br/>) 在 HTML 代码中添加换行符,并且您可以在段落周围使用段落标签 (<p>...</p>) 来获取它们之间的距离。

【讨论】:

  • 我可能不清楚。我在电子邮件正文中发送常规文本,而不是 HTML。因此,简单地将
    嵌入正文中不会导致电子邮件客户端 (Outlook) 发出换行符。
  • @Hosea146:我明白了,您在问题中所指的 HTML 实际上不是 HTML,而是代表 HTML 代码的文本...如果是纯文本邮件,那么您使用 Environment.NewLine 添加行休息(和往常一样)。
【解决方案3】:

如果您想以 HTML 格式发送电子邮件,请使用其他人描述的 break 标记。如果您希望换行符起作用,您需要以纯文本形式发送消息,可以通过设置IsBodyHtml = false 来指定。

如果没有使用现有的换行符,请尝试使用 "\n" 强制,这是换行符的转义序列。

【讨论】:

    【解决方案4】:

    您可以只使用Environment.NewLine 属性。这将插入为当前环境定义的换行符字符串。

    【讨论】:

      【解决方案5】:

      在我看来,使用段落标签是最好的方法,因为它可以保持格式干净且易于维护。

      我希望这会有所帮助。

      <p>Dear Mike</p>
      <p>This is a sample message</p>
      <p><b>Thank You,</b></p>
      

      【讨论】:

      • 如果您查看 4 年前的先前条目,其他人建议使用
        标签,并且 OP 指出这不是问题,因此段落标签(注意拼写)不会也无济于事。
      • 对不起,我没有检查所有的 cmets。感谢您指出这一点。
      【解决方案6】:
      email.Body = new MessageBody(BodyType.Text, stringThatCointainsMessage);
      

      至少使用Microsoft.Exchange.WebServices.Data这样可以解决问题

      你需要使用重载方法和枚举BodyType.Text

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-26
        • 2014-07-13
        • 1970-01-01
        • 2011-03-26
        • 2018-11-21
        • 2015-04-30
        • 2013-11-11
        相关资源
        最近更新 更多