Пошлите электронное письмо с rtf текстом в Дельфи

Я хотел бы выполнить следующую задачу: преобразование содержания TRichEdit (rtf текст) в тело электронного письма не-простого-текста.

MAPI не поддерживает rtf, но является там способом сделать это, возможно, с Инди?

Проблема состоит в том, что rtf является rtf, и электронные письма являются простым текстом или HTML.

Кто-то может предложить прием? Действительно ли возможно преобразовать rtf в текстовое использование TWebBrowser?

В основном сценарий:
1) Пользователь пишет электронное письмо в форме Дельфи,
2) Электронное письмо затем послано с MAPI почтовому клиенту по умолчанию (таким образом, новое почтовое окно сгенерировано, и тело сообщения является тем же, которое я имел в форме Дельфи),
3) Пользователь посылает электронное письмо от почтового клиента

Так или иначе MAPI принимает только простой текст.

ОБНОВЛЕНИЕ:

При попытке Инди, которую я записал этому, но тем не менее она не работает, поскольку я отправляю почту, которую она к моему 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;
5
задан LaBracca 27 July 2010 в 15:31
поделиться