Tôi muốn thực hiện tác vụ sau: chuyển đổi nội dung TRichEdit (văn bản rtf) thành nội dung thư điện tử không thuần văn bản.Gửi e-mail có văn bản rtf ở delphi
MAPI không hỗ trợ rtf, nhưng có cách nào để làm điều đó có thể với Indy?
Vấn đề là rtf là rtf và email là văn bản thuần hoặc HTML.
Ai đó có thể đề xuất mẹo không? Có thể chuyển đổi rtf thành văn bản bằng TWebBrowser không?
Về cơ bản các kịch bản là:
1) tài viết email trong một hình thức delphi,
2) Sau đó, email được gửi với MAPI để các ứng dụng thư mặc định (do đó, một cửa sổ email mới được tạo ra, và nội dung thư giống như tôi đã có ở dạng delphi)
3) Người dùng gửi email từ ứng dụng thư
Dù sao MAPI chỉ chấp nhận văn bản thuần túy.
UPDATE:
Cố gắng với Indy tôi đã viết điều này, nhưng nó vẫn không hoạt động, như tôi đã gửi thư nó vào tài khoản gmail của tôi, tôi nhận được một tin nhắn với cơ thể trống rỗng và noname giả tập tin đính kèm.
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;
Tôi muốn ngừng sử dụng MAPI, tôi muốn gửi email thông qua idSMTP trực tiếp – LaBracca