您可能会说在stackOverflow中有很多关于此的讨论,但是大多数都比我需要的更复杂,主要用于其他语言.
我有一个MySQL远程数据库,其中我有一个"帮助"表,其中包含用于填充使用此数据库的动态网站的帮助页面的代码.
我决定制作一个Delphi应用程序来管理该网站,而不是通过网站本身来提高速度和安全性.
我想用一个TRichEdit来制作帮助文本并使用简单的东西,如对齐,粗体,斜体和带下划线的样式.我不想使用图片和字体.
如何选择丰富的样式文本并将其转换为HTML以放入远程数据库中的BLOB字段,然后如果我想再次编辑它,则重新转换为富文本?
我想执行以下任务:将TRichEdit内容(rtf文本)转换为非纯文本电子邮件正文.
MAPI不支持rtf,但有没有办法可以使用Indy?
问题是rtf是rtf,电子邮件是纯文本或HTML.
有人可以建议一招吗?是否可以使用TWebBrowser将rtf转换为文本?
基本上情况是:
1)用户以delphi形式写电子邮件,
2)然后将电子邮件与MAPI一起发送到默认邮件客户端(因此生成一个新的电子邮件窗口,并且邮件正文与delphi形式的邮件正文相同) )
3)用户从邮件客户端发送电子邮件
无论如何MAPI只接受纯文本.
更新:
尝试与Indy我写了这个,但它仍然没有用,因为我发送邮件到我的Gmail帐户我收到一个空身和NONAME假附件的消息.
uses IdMessageBuilder;
procedure SendMail;
var
MBuilder: TIdMessageBuilderRtf;
MyMemoryStream: TMemoryStream;
begin
try
MBuilder := TIdMessageBuilderRtf.Create;
MyMemoryStream := TMemoryStream.Create;
MBuilder.RtfType := idMsgBldrRtfRichtext;
// RichEdit1 has PlainText set to False
// at design time I pasted some formatted text onto it
RichEdit1.Lines.SaveToStream(MyMemoryStream);
MBuilder.Rtf.LoadFromStream(MyMemoryStream);
MBuilder.FillMessage(IdMessage1);
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;
finally
MyMemoryStream.Free;
MBuilder.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud) 如何使用WYSIWYG界面制作HTML文件?IE一个HTML编辑器.专门用于创建格式化的电子邮件,包括图像,超链接,字体格式,项目符号,缩进等...
注[jd]:这是一个自我回答的问题,旨在成为其他人的指针.