Olá pessoal. Uso Delphi 2009 e Indy Tiburon. Criei uma classe derivada dos componentes Indy para criar email. Criei também um método Enviar que se conecta com o servidor smtp e envia o email. Consigo criar um email e enviar sem problemas, mas há um módulo do meu sistema que cria uma pilha de emails e numa thread eu envio um a um. Na hora que eu chamo o TEmail.Enivar a coisa complica. Debugando eu vejo que durante a preparação do email, a execução volta ao início tentando enviar outro, gerando hora erro de conexão multipla no servidor SMTP, outras de AV e até Invalid Pointer. Fiz mais ou menos assim:
Pilha := TObjectStack.Create; loop Email := TEmail.Create; . ...insere os dados... . Pilha.Push(Email); Na Thread Fica assim: while Pilha.Count > 0 do begin Email := TEmail(Pilha.Pop); Email.Enviar; Email.Free; end; Pilha.Free; Só tenho problemas com pilha. Se for apenas 1 objeto tudo funciona bem. Alguém pode me dar uma luz? Desde já agradeço! Abraços. [As partes desta mensagem que não continham texto foram removidas]