我有一个应用程序可以将格式良好的处理日志发送给用户。
当我在本地运行应用程序(调试模式)时,使用[SMTPServer]发送,日志格式整齐,看起来像我期望的那样。
当我在测试服务器上安装应用程序并将其配置为使用相同的[SMTPServer]发送时,日志会在我的收件箱中到达并删除换行符。
目前,转换为HTML格式并非真正的选择。
我意识到Outlook剥离了它们,但我很困惑为什么它只在来自服务器时才会这样做。
思想?
答案 0 :(得分:2)
我不确定这会解决它,但尝试使用以下方法添加换行符:
System.Environment.NewLine
或简单地说“\ n”。不过,前者是更好的做法。
答案 1 :(得分:1)
引入换行符的代码是什么?如果发送邮件的代码相同,并且通过同一服务器发送并由同一客户端使用,我会调查源代码;原木本身。与在本地运行系统时它们的出现方式相比,它们在服务器上生成时看起来会有所不同吗?
答案 2 :(得分:1)
尝试将日志信息写入两个框中的文件,以查看输出是否存在差异。如果它们是相同的那么问题可能在邮件服务器的配置中,可能使用默认的电子邮件编码或类似的东西。如果它们不同,那么您可以设置远程调试到服务器以在构建时检查字符串/电子邮件,以查看是否可以找到变体。
我从未在Vista和2003之间看到过不同的行终止符(在默认配置中),但我同意这是值得关注的......
答案 3 :(得分:0)
在电子邮件世界中,行只能以“\ r \ n”(vbCrLf)终止。使用Environment.NewLine或“\ n”或“\ r”不正确,可能会导致问题。
新行必须以“\ r \ n”(不含引号)的组合终止。
我不知道这是否是问题,但是,如果您使用StringBuilder构建电子邮件,正确的方法是:
sb.Append( singleLineContent);
sb.Append( "\r\n" );