Ver Mensaje Individual
  #13  
Antiguo 27-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 23
ContraVeneno Va por buen camino
Código Delphi [-]
Uses r2hconv

....
procedure Tfrm.EnviaCorreoClick(Sender: TObject);
var strOrigen: string;
begin
  inherited;
  redtMail.lines.SaveToFile('c:\temp.rtf');
  r2hconv.rtf2html('c:\temp.rtf', 'c:\temp.htm', ['']);
  redtHTML.Lines.LoadFromFile('c:\temp.htm');
  redtHTML.Lines.Add('');
  redtHTML.Lines.Add('');
  //leve verificación sobre el fomato de la dirección escrita
   if trim(edtMail0.text)='' then begin
    messagebox(Handle,'No ha escrito la dirección de correo del destinatario seleccionado.'+#13+'Correo No enviado.',
    'Error', MB_ICONError); Exit;
   end else begin
    if not ExecRegExpr('[\w\d\-\.]+@[\w\d\-]+(\.[\w\d\-]+)+',
        edtMail0.Text) then begin
      messagebox(Handle,'La dirección escrita no es una dirección de correo válida.'+#13+'Correo No enviado.',
      'Error', MB_ICONError);
      exit;
      //verificación sobre la segunda dirección
      if trim(edtMail1.text)<>'' then
       if not ExecRegExpr('[\w\d\-\.]+@[\w\d\-]+(\.[\w\d\-]+)+',
         edtMail1.Text) then
           edtMail1.text:='';
    end; //if not execregexpr
   end; //if trim mail0
   //Enviar el mail despues de guardar los datos
   frm.SMTP.Host:=Host;
   frm.SMTP.UserId:=Usuario;
   strOrigen:=strOrigen;
   frm.SMTP.Port:=25;
  with frm.SMTP do begin
   try
    try
     Connect;
    except on E:Exception do begin
     messagebox(Handle,'No se pudo establecer la conexión.'
     ,'Error.',MB_oK+MB_ICONERROR);
     end; //fin except
    end; // fin try - except
   finally
    if Connected then begin
      PostMessage.FromAddress:=strOrigen;
      PostMessage.ToAddress.Text:=edtMail0.Text;
      if edtMail1.Text<>'' then
        PostMessage.ToCarbonCopy.Text:=edtmail1.text;
      with PostMessage.Body do begin
       Clear;
       Add(redtHTML.Text);
      end; //with body
       PostMessage.Subject:=edtAsunto.Text;
       SendMail;
       Disconnect;
      end;
     end; //if connected
   end; //fin try - finally
   end; //with smtp
end;
....

usando un componente SMTP.

Aunque personalmente prefiero utilizar el método ShellExec con un comando mailto.

Más explícito que eso, no creo, pero puedes preguntar
__________________

Responder Con Cita