Angel.Matilla
09-05-2016, 12:38:05
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:
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?
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:
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?