Я хотел бы выполнить следующую задачу: преобразовать содержимое TRichEdit (текст RTF) в текстовое сообщение электронной почты, не являющееся текстовым.
MAPI не поддерживает RTF, но естьспособ сделать это, может быть, с Indy?
Проблема в том, что rtf - это rtf, а электронные письма - это обычный текст или HTML.Можно ли преобразовать rtf в текст, используя TWebBrowser?
В основном сценарий таков:
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;