【发布时间】:2011-12-15 02:21:54
【问题描述】:
我有一个 textarea 保存到我用来作为电子邮件正文发送的数据库中。
我允许将令牌用作与该消息有关的信息的占位符。
如果我根本不触摸占位符,电子邮件发送就可以了,换行符与文本框中的换行符完全相同(电子邮件以纯文本形式发送)。
但是,当我开始使用替换功能时,换行符开始消失,所有行都被挤在一起。
例如。
Body.Replace("%procedure%", CurrentOrder.Description);
将替换文本 %procedure%,但也会删除行尾的换行符。即使换行符不是直接在被替换的文本之后。
有什么想法吗?
编辑:
现在,我只是将“\n”替换为“<br />”并将电子邮件以 HTML 格式发送。我宁愿将其保留为纯文本,因为我根本无法控制收件人。
编辑 2: 这似乎是 Outlook 本身的问题,而不是电子邮件。我刚刚在gmail中查看了完全相同的电子邮件,格式正确。
【问题讨论】:
-
代码中的字符串或outlook中的结果电子邮件中是否删除了换行符?
-
你用不同的浏览器测试过这个吗? IIRC 浏览器在文本区域中添加换行符的方式不同,也许当 .NET 操作字符串时,它“修复”了它认为是“断”的换行符? .NET 对换行符的理解可通过 Environment.NewLine 访问。刚刚看到您的编辑 - 如果您要替换\n,浏览器差异会更相关。
-
@GregB 我刚刚运行了一个正则表达式来查看匹配计数,看起来数字保持不变。
标签: c# .net regex visual-studio replace