我想執行以下任務:將TRichEdit內容(RTF文本)轉換爲非純文本電子郵件正文。用delphi中的RTF文本發送電子郵件
MAPI不支持RTF,但有沒有辦法做到這一點可能與印地?
問題是rtf是rtf,而電子郵件是純文本或HTML。
有人可以提出一個竅門嗎?使用TWebBrowser可以將RTF轉換爲文本嗎?
基本上場景爲:
1)用戶在一個Delphi形式寫入電子郵件,
2)電子郵件然後用MAPI發送到默認的郵件客戶端(從而產生一個新的電子郵件窗口,以及消息體是我在德爾福的形式相同)
3)用戶從郵件客戶端發送電子郵件
無論如何MAPI只接受純文本。
UPDATE:
與印地嘗試我寫這篇但仍不能正常工作,我發送郵件到我的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;
我想停止使用MAPI,我更願意發送的電子郵件通過idSMTP直接 – LaBracca 2015-02-19 21:25:07