Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 12-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo tuve que ingeniarme algo similar con Delphi, esto es, preparar un correo para ser enviado por el cliente de correo del usuario, pero, con el cuerpo del mismo debidamente formateado. Al cabo es cuestión de hacer algo parecido a lo siguiente, que es una traducción casi literal de la función que empleé con Delphi para el mismo asunto. Lo he probado y parece funcionar bien, aunque puedes limar la función tanto como te plazca. El truco está en añadir tantos "&body=linea del cuerpo" como líneas sean necesarias. En este caso podrías utilizar la función directamente con "TMemo", esto es, enviando como parámetro las líneas de este:


Código:
void EnviarCorreo(AnsiString email, AnsiString asunto, TStrings* cuerpo) {

  // Constantes que contiene los "strings" a los que luego
  // habremos de dar el formato adecuado con los parámetros
  // de esta función.
  //
  const AnsiString LINEAS_CUERPO = "&body=\"%s\"";
  const AnsiString ASUNTO_CORREO = "mailto:%s?subject=%s";

  AnsiString cuerpoTemporal; // Aquí iremos guardando el cuerpo

  for(int i = 0; i <= cuerpo->Count-1; i++) { // Por cada línea en el cuerpo
	// Vamos añadiendo líneas debidamente formateadas al "cuerpoTemporal"
	cuerpoTemporal += Format(LINEAS_CUERPO, OPENARRAY(TVarRec, (cuerpo->Strings[i])));
  }

  // Preparamos el "asunto" del correo, que incluirá también
  // la dirección de correo del destinatario: nótese cómo se
  // utiliza la constante ASUNTO_CORREO debidamente formateada.
  //
  AnsiString asuntoCorreo = Format(ASUNTO_CORREO, OPENARRAY(TVarRec, (email, asunto)));

  // En la siguiente variable "juntamos" el asunto, el email
  // y el cuerpo del correo, ya todo formateado y listo para
  // utilizarlo luego en la función "ShellExecute".
  //
  AnsiString correoPreparado = asuntoCorreo + cuerpoTemporal;

  // Abrimos el cliente de correo del usuario ya con el correo
  // que hemos preparado más arriba listo para ser enviado.
  //
  ShellExecute(0, "open", correoPreparado.c_str(), 0, 0, SW_SHOW);
}

// Ejemplo de llamada a la función "EnviarCorreo"
//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  EnviarCorreo("[email protected]", "Asunto del correo", Memo1->Lines);
}
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:31:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi