Ver Mensaje Individual
  #1  
Antiguo 09-05-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Enviar correos con adjuntos (Indy 10)

Recuerdo a todos que uso BCB 6 e Indy 10.6.2.0

Sigo a vueltas con mis problemas con Indy 10. Si bien el problema que tenía de conexión para poder enviar los correos ya los he resuelto (creo) ahora tengo problemas a la hora de adjuntar ficheros al mensaje que creo, y el problema me lo da a la hora de compilar. Estoy tratando de usar este código de cunado utilizaba Indy 9:
Código:
Correo->Subject = "Socio núm. " + FormatFloat("###,##0", Query->FieldByName("Socio")->AsInteger) + " - " + fCarSoc->QRLabel5->Caption;
Correo->ClearBody();
Correo->MessageParts->Clear();
Correo->Recipients->Clear();
Correo->CCList->Clear();
Correo->BccList->Clear();

Correo->Recipients->Add();
Correo->Recipients->EMailAddresses = Query->FieldByName("Usuario")->AsString.Trim() + "@internautas.org";
if (!Query->FieldByName("Email")->AsString.IsEmpty())
{
     Correo->CCList->Add();
     Correo->CCList->EMailAddresses = Query->FieldByName("Email")->AsString.Trim();
}
Correo->BccList->Add();
Correo->BccList->EMailAddresses = Correo->From->Address;

Correo->Body->Text = "El fichero adjunto " + ExtractFileName(cPdfFile) + " contiene información importante sobre tu cuenta como miembro de la " + cInstala[0] + ". Por "
"favor: Leela con atención.\r\n\r\nAtentamente,\r\n\r\n\t" + cInstala[1] + "\r\n\tAdministración de Socios\r\n\t" + cInstala[0] +
"\r\n\thttp://www.internautas.org";
Correo->MessageParts->Add();
TIdAttachment(Correo->MessageParts, cPdfFile);
Todos los campos y variables que se usan están definidos.

He estado mirando por foros y páginas y, al margen de que casi todo lo que he encontrado era para Delphi, no logro que me compile, ni bien ni mal:
  • Si lo pongo tal cual TIdAttachment(... me da un error E2352 Cannot create instance of abstract class 'TIdAttachment'.
  • Si adapto el código Delphi que he encontrado y uso TIdAttachment->Create(..., entonces me da un error E2108 Improper use of typedef 'TIdAttachment'.
  • Si trato de crear un objeto Adjunto así:
TIdAttachment *Adjunto = new TIdAttachment(Correo)
Adjunto->Add(Correo->MessageParts, cPdfFile);
la creación de Adjunto no me da error pero entonces me da dos en la segunda línea: E2352 Cannot create instance of abstract class 'TIdAttachment' y E2353 Class 'TIdAttachment' is abstract because of 'TIdAttachment.OpenLoadStream()= 0'.
¿Puede alguien ayudarme o darme una pista?
Responder Con Cita