c# - 当我进行替换时,为什么 C#.net 会删除换行符?如何阻止它?

标签 c# .net regex visual-studio replace

我有一个文本区域保存到数据库中,我用它作为电子邮件正文发送。

我允许将 token 用作与该消息相关的信息的占位符。

如果我完全不触摸占位符,则电子邮件会正常发送,换行符与文本框中的完全相同(电子邮件以纯文本形式发送)。

但是,当我开始使用替换功能时,新行字符开始消失,所有行都被推到一起。

例如。

Body.Replace("%procedure%", CurrentOrder.Description);

将替换文本%procedure%,但也会删除行尾的换行符。即使换行符不是直接在被替换的文本之后。

有什么想法吗?

编辑:

目前,我只是将“\n”替换为“<br />”并以 HTML 格式发送电子邮件。我宁愿将其保留为纯文本,因为我根本无法控制收件人。

编辑2:这似乎是 Outlook 本身的问题,而不是电子邮件的问题。我刚刚在 gmail 中查看了完全相同的电子邮件,并且格式正确。

最佳答案

Outlook 会删除新行,除非该行以两个空格结尾。

如果您正在测试发送到使用 Outlook 的帐户的电子邮件,请尝试在新行之前添加两个空格,看看是否可以解决问题。

关于c# - 当我进行替换时,为什么 C#.net 会删除换行符?如何阻止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892413/

相关文章:

c# - 如何将刷新按钮添加到 mscaptcha 组件?

C# 和 Windows 窗体控件命名指南

.net - 如何使用 SharpSVN 在 svn 中创建分支

c# - 为 C# 设计自定义字体对话框/选择器,过滤掉非真实字体

javascript - 正则表达式匹配带有特殊字符前缀的日期

ruby - 如何使用 Ruby 正则表达式从字符串中提取重复字符序列?

c# - Web 服务 session 在调试时有效,但在发布时无效

c# - 使用多个文件发布 StreamContent

c# - 如何将位于不同文件夹中的 C# dll 引用到使用该 dll 公开的接口(interface)的不同文件夹中的 C# winforms exe

php - 精确匹配SQL