Я отправляю только текстовое электронное письмо, используя TIdMessage
и TIdSMTP
.
Для Body
я использую простую объединенную строку, например
Body := SomeText + #13#10 +
SomeOtherText + #13#10 +
SomeMoreText + #13#10 +
FinalText;
В любом случае в сгенерированном электронном письме некоторые из «#13#10
» не игнорируются. Я регистрирую переменную Body
и вижу, что текст переходит на новую строку, во всяком случае в письме этого не происходит. Странно то, что это происходит не на каждой строке, а только на некоторых строках.
У вас есть идея, почему это происходит? Не подскажете, что проверить? Возможен ли конфликт между #13#10
и текстом электронного письма при некоторых условиях?
ОБНОВЛЕНИЕ
После дополнительных исследований (благодаря вашим комментариям) я понял, что это проблема визуализации Outlook, в любом случае проблема мне до сих пор не ясна.
Это тело письма, открытого в NotePad++ (я открыл файл msg, сохраненный из Outlook), где я также показываю разрывы строк (вы можете видеть # 13 # 10 как CR LF. Я выделил красным и зеленым 2 разрыва строк, которые проблематично в Outlook (но вы можете видеть, что в NP++ они выглядят так же, как и все остальные разрывы строки):
Электронная почта в Outlook выглядит так (обратите внимание, Outlook говорит, что в сообщении есть лишние разрывы строк и что они были удалены, но предлагает возможность их восстановить:
После выбора этой опции электронная почта в порядке:
Я не понимаю, почему это происходит только на некоторых разрывах строк. Помогает ли это вам лучше понять проблему?
IdMessage.ContentType := 'text/html'
и заменить#13#10
на<br>
. - person kobik   schedule 17.01.2012TIdLog...
кTIdSMTP
для сбора этих данных. То, что вы описали, похоже на проблему с Outlook, а не с Indy. - person Remy Lebeau   schedule 21.01.2012