对于Body,我使用一个简单的连接字符串
Body := SomeText + #13#10 + SomeOtherText + #13#10 + SomeMoreText + #13#10 + FinalText;
无论如何,在生成的电子邮件中,一些“#13#10”都不会被忽略.我记录Body变量,我可以看到文本转到新行,无论如何在电子邮件中这不会发生.奇怪的是,并不是每一行都会发生,而只是在某些行上.
你知道为什么会这样吗?你能建议检查一下吗?在某些情况下,#13#10和文本电子邮件正文之间是否存在某些可能的混淆?
UPDATE
经过更多的调查(感谢您的评论)我意识到这是一个Outlook可视化问题,无论如何问题仍然不明确.
这是在NotePad中打开的电子邮件的正文(我打开了从outlook保存的msg文件),我也显示了换行符(你可以看到#13#10作为CR LF.我用红色和绿色突出显示了2个换行符在outlook中有问题(但你可以看到在NP中它们看起来像所有其他的换行符):
Outlook中的电子邮件看起来像这样(请注意,outlook显示该消息有额外的换行符,并且已被删除,但他提供了恢复它们的选项:
选择该选项后,电子邮件就可以了:
我不明白为什么这只发生在一些换行符上.这有助于您更好地理解问题吗?
您可以尝试使用IdMessage.NoEncode:= True,以便Body不会被编码为 RCF 821.或者更好地使用现代编码IdMessage.ContentType:=’text / html’并用< br>替换#13#10
编辑:
这是Outlook Express问题.
看Here和Here.
解决方法是在每行文本的开头添加2个空字符,以使Outlook不删除中断.
请注意,Microsoft支持还建议使用HTML格式作为Outlook Express的可能解决方法:
Method 2. Use HTML or Rich Text format You can use HTML or Rich Text formats when you create new items. Or you can change existing posts to these formats.