Я ранее задавал вопрос здесь. 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
Спасибо