Senden Sie eine E-Mail mit RTF-Text in Delphi
Ich möchte die folgende Aufgabe ausführen: Konvertieren eines TRichEdit-Inhalts (eines RTF-Textes) in einen E-Mail-Nachrichtentext ohne Klartext.
MAPI unterstützt RTF nicht, aber gibt es eine Möglichkeit, dies mit Indy zu tun?
Das Problem ist, dass RTF RTF ist und E-Mails Klartext oder HTML sind.
Kann jemand einen Trick vorschlagen? Ist es möglich, rtf mit TWebBrowser in Text umzuwandeln?
rundsätzlich ist das Szenario:
1) Benutzer schreibt E-Mails in Delphi-Form,
2) Die E-Mail wird dann mit MAPI an den Standard-E-Mail-Client gesendet (daher wird ein neues E-Mail-Fenster generiert und der Nachrichtentext ist derselbe, den ich in Delphi-Form hatte).
3) Benutzer sendet die E-Mail vom E-Mail-Client
Anyway MAPI akzeptiert nur einfachen Text.
AKTUALISIEREN
Versuchen mit Indy Ich habe dies geschrieben, aber es funktioniert immer noch nicht, da ich eine E-Mail an mein Google Mail-Konto sende. Ich erhalte eine Nachricht mit leerem Text und NONAME gefälschten Anhang.
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;