Me gustaría realizar la siguiente tarea: convertir un contenido TRichEdit (un texto rtf) en un cuerpo de mensaje de correo electrónico no de texto sin formato.Enviar un correo electrónico con texto rtf en delphi
MAPI no es compatible con rtf, pero ¿hay alguna manera de hacerlo tal vez con Indy?
El problema es que rtf es rtf y los correos electrónicos son texto sin formato o HTML.
¿Alguien puede sugerirte un truco? ¿Es posible convertir rtf a texto usando TWebBrowser?
Básicamente, el escenario es:
1) El usuario escribe de correo electrónico en una forma delphi,
2) El correo electrónico se envía luego con MAPI para el cliente de correo predeterminado (por lo que se genera una nueva ventana de correo electrónico, y el cuerpo del mensaje es el mismo que tenía en forma delphi)
3) El usuario envía el correo electrónico desde el cliente de correo
De todos modos, MAPI solo acepta texto sin formato.
ACTUALIZACIÓN:
Tratando con Indy escribí esto, pero aún así no funciona, como puedo enviar un correo electrónico a mi cuenta de Gmail que recibo un mensaje con el cuerpo vacío y NONAME apego falso.
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;
me gustaría dejar de usar MAPI, prefiero envió correos electrónicos a través idSMTP directamente – LaBracca