Ir para conteúdo
  • Cadastre-se

Felipe Augusto Griebler

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Felipe Augusto Griebler's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputação

  1. Descobri finalmente a origem do problema como descrito no primeiro tópico que o problema ocorria efetivamente quando depois de gerar a hash o componente chamava o procedimento EVP_cleanup(); da biblioteca openssl. Olhando a documentação do openssl verifiquei que esse procedimento liberam os digests e ciphers ta tabela. Agora vou descrever a solução que encontrei.primeiramente declarei a unit libeay32 nos uses depois antes de enviar o email realimentei a tabela com os digests e ciphers para fazer isso chameio os seguintes procedimentos do openssl OpenSSL_add_all_algorithms, OpenSSL_add_all_ciphers, OpenSSL_add_all_digests, ERR_load_crypto_strings. Demonstração abaixo no código. //arquivo nfc acbrnf1.NotasFiscais.LoadFromFile('D:\componentes_instalados\acbrnovo\Exemplos\ACBrNFe2\Delphi\51140712070962000104650010000000111000000110-nfe.xml'); acbrnfdnfr1.FastFile := 'DANFeNFCe.fr3'; acbrnf1.NotasFiscais.Imprimir; acbrml1.AddAddress('emailenvio'); acbrml1.Subject:='tetse'; EVP_cleanup;//chamo para garantir que a tabela do openssl esta limpa OpenSSL_add_all_algorithms; OpenSSL_add_all_ciphers; OpenSSL_add_all_digests; ERR_load_crypto_strings; try acbrml1.Send(); except on E: Exception do end; Ps. Essa solução não é a definitiva, pois o problema final esta no envio do email pelo Synapse mas não continuei pesquisando nesta biblioteca. Ps2 Recomento uma solução tampão no código do componente ACBrMail como descrito abaixo procedure TACBrMail.Send(UseThread: Boolean); begin EVP_cleanup;//chamo para garantir que a tabela do openssl esta limpa OpenSSL_add_all_algorithms; OpenSSL_add_all_ciphers; OpenSSL_add_all_digests; ERR_load_crypto_strings; if UseThread then begin if fThread <> nil Then fThread.Terminate; fThread := TACBrThread.Criar(Self); end else SendMail; end;
  2. Solivan você lembra o que você modificou ou não? Também tive a idéia de criar outro executável mas fica pouco elegante e fragmenta o sistema.
  3. Quando executo o código abaixo (exemplo), não consigo enviar o email retorna o seguinte erro"smtp error :unable to login" se comento as três primeiras linhas e executo o email é enviado. Usei o componete acbrmail mas ocorre o mesmo problema com envio por TSMTPSend do Synapse.Vale notar que percebi que após a emissão da primeira nfc o aplicativo não consegue enviar mais nenhum email.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...