Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Invocando al Correo Predeterminado

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Tips & Tricks
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Invocando al Correo Predeterminado Responder citando

Invocando al programa de correo predeterminado para enviar un email

(Copyright © 2001 Ernesto D'Spirito convertido a C++Builder by _Willa)

Puede invocar la ventana "Nuevo Mensaje" o "Componer Mensaje" del programa de correo electrónico predeterminado usando la función API ShellExecute declarada en la unidad ShellApi, simplemente pasándole 'mailto:' como tercer parámetro (lpFile), tal como se muestra aquí:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL, "mailto:", NULL, NULL, SW_NORMAL);
}

También puede agregar la dirección de email del destinatario:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL,"mailto:latium@latiumsoftware.com", NULL, NULL,
SW_NORMAL);
}

Incluso se puede incluir una línea de asunto:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL,"mailto:latium@latiumsoftware.com?Subject=Test"
, NULL, NULL, sW_NORMAL);
}

Y hasta el texto del mensaje:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL,
"mailto:latium@latiumsoftware.com?Subject=Test&Body=Just testing the example",
NULL, NULL, SW_NORMAL);
}

En definitiva, esta es una forma fácil de invocar al correo, e incluso se puede ampliar con un poco de imaginación "el texto del mensaje", asignandole el contenido de un RichEdit, Memo, ...
Tambien se puede asignar al Click de un TLabel de tal forma que cuando se pulse con el raton encima del .Caption, se invoque a la función Shell... correspondiente.

Salu2
_Willa

Volver arriba
Mensaje    Asunto: Pero no funciona del todo. Responder citando

Hola, muy buenos días.
Todo eso que se dice que puedes introducir hasta la dirección de correo electrónico está muy bien. Aún así hay problemas. Por ejemplo, cuando el email no es siempre el mismo, sino que lo lees desde una base de datos, ¿cómo lo puedes introducir dentro de "mailto:..."?. A mí me dice:

Cannot convert 'AnsiString' to 'const char *'

Muchas gracias por leer esto y por la contestación.
Laughing
_________________
Sergio
Badajoz, España
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

AnsiString sCorreo="lo que quieras";

ShellExecute(Handle, NULL, sCorreo.c_str(), NULL, NULL, SW_NORMAL);
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Re: Invocando al Correo Predeterminado Responder citando

Y que pasa si lo que quiero es:

- escribir aa quien va.

- escribir el asunto.

- escribir el texto.


y QUIERERLO ENVIAR AUTOMATICAMENTE???????????????
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Me parece que ya andaba por aquí este código, pero ahí va otra vez:
Código:
Memo1->Clear();
Memo1->Text = <Texto del mensaje>

NMSMTP1->PostMessage->FromName    = <Nombre emitente>;
NMSMTP1->PostMessage->FromAddress = <Dirección remitente>;
NMSMTP1->PostMessage->ToAddress->Add(<Dirección destino>);
NMSMTP1->PostMessage->ToCarbonCopy->Add(<Copia a>);
NMSMTP1->PostMessage->ToBlindCarbonCopy->Add(<Copia oculta a>);
NMSMTP1->PostMessage->Subject     = <Asunto>;
NMSMTP1->PostMessage->Body->Clear();
NMSMTP1->PostMessage->Body->Add(Memo1->Text);
NMSMTP1->PostMessage->Attachments->Add(<Adjunto 1>);
NMSMTP1->PostMessage->Attachments->Add(<Adjunto 2>);

NMSMTP1->SubType    = mtPlain;
NMSMTP1->EncodeType = uuMime;
NMSMTP1->Host       = <Servidor SMTP>;
NMSMTP1->UserID     = <Usuario>;
NMSMTP1->Connect();

if (NMSMTP1->Connected)
     NMSMTP1->SendMail();

Todas las variables (Nombre emitente, Dirección remitente, Dirección destino, etc.) son del tipo AnsiString
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.