Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Limite Bcc (https://www.clubdelphi.com/foros/showthread.php?t=11100)

Jvilomar 05-06-2004 15:36:40

Limite Bcc
 
Hola a todos...

Bueno mi pregunta es la siguiente....

Tiene algun limite de entrada la propiedad bccList de un tIdMessage? y como podria hacerle para cargar un listado de direcciones desde un archivo de Texto?

:confused:

jachguate 05-06-2004 17:21:25

El límite teórico de un TidEmailAddressList debiera ser bastante alto. Cuando menos 64Kb, aunque no tengo a mano Delphi para revisar los fuentes. Probablemente el límite sea la memoria disponible en la pc.; pero seguramente tu servidor de correo impondrá un límite mucho mas pequeño, que variará de acuerdo a las capacidades y configuración del servidor.

Para cargarlo en un archivo de texto, tus direcciones alli deben cumplir con el estándar RFC-822. Es decir, estar en el formato

nombre@server.com

o bien

<Nombre amigable> nombre@server.com

Si es asi, podes asignar de golpe las direcciones desde un TStringList, que bien puede venir de un archivo de texto.

StringList1.LoadFromFile('direcciones.txt');
message.bccList.EMailAddresses := StringList1.commatext;

Hasta luego.

;)

Jvilomar 05-06-2004 19:26:44

Aqui de nuevo...

Bueno.. hasta ahora he hecho lo que me dijiste y no me ha resultado...

Creo mi stringlist y cargo el archivo donde tengo las direcciones pero no se envian.... no pasa nada... solo envia el email de prueba al recipiente principal o al To...

aqui esta una fraccion de codigo

Código Delphi [-]

procedure TfrmNuevoMensaje.edtBCCChange(Sender: TObject);
var
  strLista : TStrings;
begin
  strLista := tStringList.Create;
    try
    strLista.LoadFromFile('c:\mail.txt');
    IdMsgEnviar.BccLista.EMailAddresses := strLista.CommaText;
    //ListBox1.Items.Add(strLista.CommaText);
    Finally
     strlista.Destroy;
    end;
end;

jachguate 05-06-2004 23:23:50

Bueno, creo que eso tendrá mas que ver con tu servidor de correo que con las INDY. Lo único que hará falta es verificar que después de asignar el bccList efectivamente se hayan creado los elementos del TidEmaiAddressList.

Eso podes comprobarlo fácilmente haciendo algo como:

Código Delphi [-]
procedure TfrmNuevoMensaje.edtBCCChange(Sender: TObject);
var
  strLista : TStringList;

begin
  strLista := tStringList.Create;
  try
    strLista.LoadFromFile('c:\mail.txt');
    IdMsgEnviar.BccList.EMailAddresses := strLista.CommaText;
    //ListBox1.Items.Add(strLista.CommaText);
    ShowMessage(Format('Se cargaron %d direcciones', [idMsgEnviar.bccList.Count]));
  Finally
    strlista.Destroy;
  end;
end;

He colocado en negrillas un par de cambios, el segundo impediria que compile el código.

Si el mensaje revela que hay mas de 0 direcciones cargadas al componente, y el correo no llega a estas direcciones, te sugiero ponerte en contacto con el administrador del email-server.

Hasta luego.

;)

Jvilomar 11-06-2004 21:20:16

Gracias Juan Antonio....

Lo que sucedia era que estaba cargando la lista en el evento Onchange de un Edit y no me di cuenta.... porque creia que estaba en el OnDblClick...

Por otro lado tambien habia leido algo en la ayuda acerca del tStringlist y el tString y pense que podia crearla como tString y luego utilizarla como un tStringList... pero de todos modos ya me funciona a las MIl maravillas :D

Gracias Otra Vez.....

jachguate 11-06-2004 21:39:35

Me alegra que ha esté solucionado.

Con respecto de esto:

Cita:

Empezado por Jvilomar
Por otro lado tambien habia leido algo en la ayuda acerca del tStringlist y el tString y pense que podia crearla como tString y luego utilizarla como un tStringList...

Me imagine que no sabias exactamente lo que estabas haciendo (que era perfectamente válido) por es sugerí el cambio.

En realidad es al-reves... porque no lo estabas creando como TStings, lo estabas creando como TStringList, pero almacenando su referencia en un TStrings. Esto podes hacerlo porque TStringsList es TStrings, es decir, hereda de TStrings.

Yo tengo como práctica general, declarar las variables de objetos con la clase mas específica que me es posible. Es decir, si una variable siempre apuntará a un objeto de la clase TFormaEspecializada, la declaro asi, y no como TForm, por ejemplo, que seria perfectamente válido.

Uso variables de tipos mas genericos o abstractos solamente en casos donde apuntarán a objetos de diferentes clases, para tareas polimórficas, por ejemplo.

No me extiendo mas, que luego habría que mover el hilo al foro de POO. :p Sin embargo si te recomiendo que leas un poco de teoría de objetos.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 12:02:20.

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