Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Erro ao enviar e-mail (trunk2)


  • Este tópico foi criado há 2409 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde

Ao tentar enviar o email apresenta o seguinte erro: "List index out of bouds(0)"

Estou utilizando o  ACBrCte1.Conhecimentos.Items[0].EnviarEmail para o envio.

E o ACBrMail para configuração do Email.

No Demo esta apresentando o mesmo erro. Alguém poderia me ajudar?

Link to comment
Share on other sites

  • Consultores

Bom dia Werner,

Antes de executar o enviarEmail você esta carregando o componente com o CT-e?

Se sim, sabe precisar onde exatamente esse erro ocorre?

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Segue o código como está sendo feito, logo após a configuração quando vai executar o EnviarEmail apresenta o erro.

      ACBrMail1.Host     := qrEmpresa.fieldbyname('nm_smtpemail').asstring;
      ACBrMail1.Port     := qrEmpresa.fieldbyname('nr_portaemail').asstring;
      ACBrMail1.Username := qrEmpresa.fieldbyname('nm_usuarioemail').asstring;
      ACBrMail1.Password := qrEmpresa.fieldbyname('nr_senhaemail').asstring;
      ACBrMail1.From     := qrEmpresa.fieldbyname('nm_usuarioemail').asstring;
      ACBrMail1.SetSSL   := (qrempresa.fieldbyname('tp_conexaoseguraemail').asinteger=1); // SSL - Conexão Segura
      ACBrMail1.SetTLS   := (qrempresa.fieldbyname('tp_conexaossltsl').asinteger=1); // Auto TLS
      ACBrMail1.ReadingConfirmation := False; //Pede confirmacao de leitura do email
      ACBrMail1.UseThread  := False;           //Aguarda Envio do Email(não usa thread)
      ACBrMail1.FromName   := Para;

      ACBrCTe1.Conhecimentos.Items[0].EnviarEmail( Para, 'Conhecimento de Transporte Eletrônico - '+ACBrCTe1.Conhecimentos.Items[0].CTe.inFCTe.ID,
                                                memo1.lines
                                                , True  // Enviar PDF junto
                                                , CC    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

      showmessage('E-mail Enviado com Sucesso.');

Link to comment
Share on other sites

  • Consultores

Boa tarde Werner,

Você criou a lista de e-mail que serão enviados com cópia?

(...)

                                           , True  // Enviar PDF junto
                                                , CC    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

Se o e-mail será enviado para somente uma pessoa ou seja o tomador do serviço você passar como parâmetro o valor NIL.

                                           , True  // Enviar PDF junto
                                           , nil    // Lista com emails que serão enviado cópias - TStrings
                                           , nil); // Lista de anexos - TStrings

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores

Werner,

Antes de executar o EnviarEmail, o componente esta sendo carregado com o XML do CT-e, ou seja, você esta usando o LoadFromFile para carregar o CT-e antes?do seu envio por e-mail

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores

Boa tarde Werner,

Como lhe disse não basta saber que o erro ocorre no método EnviarEmail, é preciso debugar tudo o que o método executa para descobrir onde esta provocando o erro.

Coloque um break point na linha que é executado o método EnviarEmail, depois vai pressionando a tecla F7 para debugar o método.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Bom dia Italo

Já debuguei o meu código por várias vezes e não consegui identificar o erro pois estou fazendo conforme tenho no DEMO, e agora os meus teste estão sendo feito dentro do DEMO, como você me explica a ocorrência do erro também persistir no DEMO onde era para está funcionando normalmente. 

Edited by Werner_Marques
Link to comment
Share on other sites

  • Consultores

Bom dia Werner,

Vamos separar as coisas: Componente de aplicação.

A sua aplicação ou o programa Demo podem estar OK, mas o componente pode estar com algum erro.

É por isso que sugeri colocar o break point e debugar o que o EnviarEmail faz para tentar encontrar onde esta a linha que gera o erro.

Por outro lado fiz uma comparação entre a rotina do ACBrCTe com a mesma do ACBrNFe, tinha algumas diferenças, agora elas estão iguais.

Favor atualizar os fontes e testar novamente.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores

Boa tarde Werner,

Não tenho condições de compilar agora, pois aqui na empresa ainda uso os fontes do Trunk, somente em casa a noite vou poder verificar isso.

Mas acredito que pela mensagem de erro e pela unit deve ter haver com o DACTE em Fortes ou Fast Report.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores

Bom dia Italo

Após a atualização dos fontes do ACBr está apresentando o seguinte error:

[Fatal Error] ACBrCTe.pas(49): Unit ACBrCTeDACTEClass was compiled with a different version of ACBrCTe.TACBrCTe

Já executei o Build All Projects.

Boa tarde

bem simples você tem um arquivo em outro local diferente do .dcu que está usando!

feche seu delphi rode o instalador faça todo o procedimento e depois abra sua aplicação e compile vai funcionar!

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Membros Pro

Obrigado Juliomar deu certo esse procedimento, o sistema voltou a rodar.

Voltando ao erro do tópico, estou debugando o código depois de atualizado os fontes e verifiquei que o erro ocorre no momento em que está executando  EnviarEmail quando executa essa função do ACBrCTeConhecimentos.pas

function TConhecimentos.GetItem(Index: Integer) : Conhecimento;

begin

      Result := Conhecimento(inherited Items[Index]);

end;

Erro que apresenta:

"List index out of bouds (0)"

 

Alguém poderia me ajudar?

 

Link to comment
Share on other sites

  • Consultores

Boa tarde Werner,

Não tenho na empresa o Trunk2 instalado somente em casa.

Hoje a noite vou realizar um teste de envio de e-mail no componente ACBrCTe.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Moderadores

Werner, estou com o Trunk2 em produção emitindo CT-es normalmente, sem nenhum erro.

Poderia passar o exato momento no seu código fonte onde o erro de index é levantado?

Você não está tentando utilizar algum número de index que está fora da quantidade de CT-es que você adicionou ao componente? 

 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link to comment
Share on other sites

  • Membros Pro

Regys, primeiramente não estou com problema na emissão do CT-e e sim no Envio do XML por Email deles.

Já postei nesse tópico o exato momento onde ocorre o erro, e meu código fonte está similar ao código fonte do DEMO.(E vejo que no DEMO também ocorre esse problema).

O erro ocorre no momento em que está executando  EnviarEmail quando executa essa função do ACBrCTeConhecimentos.pas

function TConhecimentos.GetItem(Index: Integer) : Conhecimento;

begin

      Result := Conhecimento(inherited Items[Index]);

end;

Meu código Fonte:

 ACBrCTe1.Conhecimentos.Items[0].EnviarEmail( Para, 'Conhecimento de Transporte Eletrônico - '+ACBrCTe1.Conhecimentos.Items[0].CTe.inFCTe.ID,
                                                memo1.lines
                                                , True  // Enviar PDF junto
                                                , nil    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

 

   

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.