Добавление текста ответа в электронное письмо в формате HTML с использованием TIdMessage - PullRequest
1 голос
/ 18 мая 2019

Я ранее задавал вопрос здесь. replace-cidimage-refferences-in-email-body Вопрос возник из-за того, что я пишу основной архиватор электронной почты / просмотрщик архива электронной почты.

Я сохранил тело, используя

IdMessage.Body.SaveToFile(FileName);

С заменой ссылок CID в этом теле на изображения в кодировке base64 результирующий HTML-код отображается в компоненте TWebBrowser при загрузке из поля большого двоичного объекта в моей базе данных.Теперь у меня есть программа просмотра электронной почты.

Следующее требование - разрешить ответ на это письмо.Я добавил TEdit над TWebBrowser, где пользователь пользовательского интерфейса может напечатать свой однострочный ответ, и я использую некоторый код для исправления html-тела, чтобы вставить строку ответа

Reply := '<p class=MsoPlainText>';
Reply := Reply + edReply.Text + '<br>';
Reply := Reply + '<br>-----Previous Message-----<br><br>';
Reply := Reply + '</p>';

передпервый <p class=MsoPlainText в этом теле.Это электронное письмо, отправленное через IdSMTP, выглядит хорошо, но Outlook вообще не заинтересован в отображении этих встроенных изображений в формате base64.Мне нужно вернуться к тому, с чего я начал!

Я бы очень хотел сделать что-то вроде этого:

Когда исходное сообщение получено, сохраните его полностью, используя это

IdMessage.SaveToFile(FBasePath + 'raw_' + MessageID + '.html'); // works, and can be read by M$ Word

Затем сформулируйте это в ответе

IdMessage.LoadFrom(FBasePath + 'raw_' + MessageID + '.html');
IdMessage.Recipients.EmailAddresses := IdMessage.From.Address;
IdMessage.From.Address := repliersaddress;

Но теперь вопрос в том, как мне добавить текст ответа к этому html-письму.

IdMessage.InsertReply(edReply.Text); // would be great

Спасибо

...