使用TIdMessage将回复文本添加到HTML电子邮件

时间:2019-05-18 15:20:03

标签: email delphi indy

我以前曾在这里问过一个问题。 replace-cidimage-refrences-in-email-body之所以出现这个问题,是因为我正在编写一个基本的电子邮件归档程序/已归档的电子邮件查看器。

我使用

救了尸体
IdMessage.Body.SaveToFile(FileName);

用该主体中的CID引用替换为base64编码的图像后,从数据库中的blob字段加载后,结果HTML将显示在TWebBrowser组件中。所以我现在有一个电子邮件查看器。

下一个要求是允许回复此电子邮件。我在TWebBrowser上方添加了TEdit,UI用户可以在其中键入单行回复,并且我正在使用一些代码来修补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

谢谢

0 个答案:

没有答案