A veces lo mas simple es lo mas efectivo:
1.- Tomamos el TMemo y le ponemos en false la propiedad wordwrap antes de leer las líneas.
2.- Leemos cada línea (que en realidad es un párrafo) y le agregamos el tag "</br>" al html que vamos a usar
3.- Seguimos hasta leer todas las líneas.
4.- Volvemos a poner el true el wordwrap.
Voilá..
Como seda.
Les dejo mi ejemplo de código, ojo no les sirve si no tienen los componentes pero puede dar una idea a quien tenga la misma duda:
Código:
procedure TFEnviarMailManual.AAceptarExecute(Sender: TObject);
var Mensaje: TMensajeMail;
Correo : TMailer;
I: Integer;
HTMLLines: TStrings;
begin
inherited;
ememo.Properties.WordWrap := False;
if eAsunto.Text='' then
Begin
MessError('Debe escribir el asunto que llevará el e-mail');
eAsunto.SetFocus;
End
Else
Begin
if MessPregunta('¿Confirma que desea enviar los correos?')=mrYes then
Begin
try
HTMLLines := TStringList.Create;
//Llenamos la cabecera del HTML
With HTMLLines Do
begin
Add('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"');
Add('"http://www.w3.org/TR/html4/loose.dtd">');
Add('<html xmlns="http://www.w3.org/1999/xhtml">');
Add(' <head>');
Add(' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
Add(' <title>New Web Project</title>');
Add(' </head>');
Add(' <body>');
Add(' <STYLE>');
Add('{');
Add('font-family:"Times New Roman";');
Add(')font-size:20px;');
Add('}');
Add(' </STYLE>');
Add(' <center><img src="http://www.aztecaplus.com/mailing/logomail.pn" alt="logotipo"></center>');
Add(' <p class="cuerpo"><i>');
end;
//Ahora llenamos el cupero del correo
for I := 0 to ememo.lines.Count - 1 do
begin
HTMLLines.Add(ememo.Lines.Strings[i]+'<br/>');
end;
//Finalmente cerramos el HTML
With HTMLLines do
begin
Add('</i></p>');
Add('</body>');
Add('</html>');
end;
LabEnviando.Visible := True;
Barra.Visible :=True;
Barra.Min := 0;
Barra.Max := ListaMails.Count;
Barra.Step := 1;
Correo := TMailer.Create;
Try
Correo.MailHost.Host := capadatos.parm_servidor_smtp;
Correo.MailHost.Username := capadatos.parm_email_Direccion;
Correo.MailHost.Password := capadatos.parm_password_Direccion;
Correo.cuenta_origen := capadatos.parm_email_Direccion;
correo.ConectaMail;
for I := 0 to ListaMails.Count - 1 do
Begin
correo.EnviaEmailHTML('Azteca Plus',
Correo.cuenta_origen,
'cesarvinas@gmail.com',//ListaMails.Strings[i],
easunto.Text,
TStringList(HTMLLines),
TStringList(ememo.Lines),
eArchivo.Text);
Barra.StepIt;
Application.ProcessMessages;
End;
correo.DesconectaMail;
Finally
Correo.Free;
Barra.Visible := False;
LabEnviando.visible := False;
End;
finally
close;
HTMLLines.Free;
ememo.Properties.WordWrap := True;
end;
MessInfo('Se enviaron todos los mensajes');
End;
End;
end;