Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Adjuntar fichero en un e-mil en c++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=62239)

chinchan 12-12-2008 10:46:29

Adjuntar fichero en un e-mil en c++ Builder
 
Hola, ¿Cómo se puede adjuntar ficheros a un e-mail utilizando los componentes Indy?. En c++ Builder. Gracias

ifrit 16-12-2008 02:26:44

es cierto el codigo era algo confuso diculpenme, no he agregado ni borrado , solo editado como me lo pide scafandra diculpenme


Cita:

IdMessage1->Clear();
IdMessage1->From->Name = "NOMBRE";
IdMessage1->From->Address = "DIRECCION";
IdMessage1->Recipients->Add();
IdMessage1->Recipients->Items[0]->Name = "NOMBRE DESTINO";
IdMessage1->Recipients->Items[0]->Address = "EMAIL DESTINO"
IdMessage1->Subject = "Envio de totales";
IdMessage1->Body->Add("Correo electronico automático");

// No destruir manualmente las instancias de TIdAttachment // ya que TIdMessage lo hará automáticamente

Ruta = RUTA_E + "\\EnvCabPed.txt";
if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
Ruta = RUTA_E + "\\EnvCabTic.txt";

if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
Ruta = RUTA_E + "\\EnvCaja.txt";

if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
Ruta = RUTA_E + "\\EnvLinPed.txt";

if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
Ruta = RUTA_E + "\\EnvLinTic.txt";

if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
Ruta = RUTA_E + "\\EnvStock.txt";

if (FileExists(Ruta))
new TIdAttachment(IdMessage1->MessageParts, Ruta);
IdSMTP1->Host = "SERVIDOR SMTP";

// Yo lo he hecho usando la versión 9 de Indy, pero la que
// viene de fabrica en el BCB6 es una versión anterior y creo
// que en esta en vez de usar "Username" hay que usar "UserId"
// No se si habran mas cambios entre las dos versiones ya que
// no lo puedo probar de momento en la versión que trae el BCB


IdSMTP1->Username = "USUARIO";
// Actualmente muchos servidores requieren el uso
// de una clave que suele ser la misma que para POP3

IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->Password = "CLAVE";
try
{
IdSMTP1->Connect();
}
catch(...)
{
MessageBox(0, "Error al conectar al servidor", "Atención", MB_TASKMODAL | MB_ICONERROR);
}

if (IdSMTP1->Connected())
{
IdSMTP1->Send(IdMessage1);
IdSMTP1->Disconnect();
}

escafandra 16-12-2008 11:56:25

Cita:

Empezado por ifrit (Mensaje 331064)
IdMessage1->Clear(); IdMessage1->From->Name = "NOMBRE"; IdMessage1->From->Address = "DIRECCION"; IdMessage1->Recipients->Add(); IdMessage1->Recipients->Items[0]->Name = "NOMBRE DESTINO"; IdMessage1->Recipients->Items[0]->Address = "EMAIL DESTINO"; IdMessage1->Subject = "Envio de totales"; IdMessage1->Body->Add("Correo electronico automático"); // No destruir manualmente las instancias de TIdAttachment // ya que TIdMessage lo hará automáticamente Ruta = RUTA_E + "\\EnvCabPed.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); Ruta = RUTA_E + "\\EnvCabTic.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); Ruta = RUTA_E + "\\EnvCaja.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); Ruta = RUTA_E + "\\EnvLinPed.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); Ruta = RUTA_E + "\\EnvLinTic.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); Ruta = RUTA_E + "\\EnvStock.txt"; if (FileExists(Ruta)) new TIdAttachment(IdMessage1->MessageParts, Ruta); IdSMTP1->Host = "SERVIDOR SMTP"; // Yo lo he hecho usando la versión 9 de Indy, pero la que // viene de fabrica en el BCB6 es una versión anterior y creo // que en esta en vez de usar "Username" hay que usar "UserId" // No se si habran mas cambios entre las dos versiones ya que // no lo puedo probar de momento en la versión que trae el BCB IdSMTP1->Username = "USUARIO"; // Actualmente muchos servidores requieren el uso // de una clave que suele ser la misma que para POP3 IdSMTP1->AuthenticationType = atLogin; IdSMTP1->Password = "CLAVE"; try { IdSMTP1->Connect(); } catch(...) { MessageBox(0, "Error al conectar al servidor", "Atención", MB_TASKMODAL | MB_ICONERROR); } if (IdSMTP1->Connected()) { IdSMTP1->Send(IdMessage1); IdSMTP1->Disconnect(); }
este codigo funciona ok! es de _Leo del foro ryanstudios

Hola ifrit, bienvenido.

Revisa el código que expones, posiblemente no te hallas dado cuenta de que es difícil de leer. Trata de indentarlo y colocar las etiquetas de [code].

Saludos.

chinchan 18-12-2008 19:30:13

funciona correctamente...... Muchas Gracias


La franja horaria es GMT +2. Ahora son las 18:42:45.

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