Ir para conteúdo
  • Cadastre-se

dev botao

Alteração No Acbrmail - Inclusão De Thread No Processo De Envio.


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

Recommended Posts

Boa noite pessoal,

 

Estou afastado a algum tempo do projeto e parece que muita coisa mudou.

 

Comecei a testar o componente de Email, TACBrMail, para automatizar o envio de notas e outros arquivos e verifiquei que o componente não está trabalhando com thread no método de envio, portanto fiz a alteração e estou disponibilizando para a comunidade.

O método send foi protegido e um novo método "Enviar" tomou o seu lugar como método publico.

 

Realizei o teste no Delphi 7 e XE3 e em ambos está funcionando perfeitamente.

ACBrMail.pas

ACBrMail.pas

Link para o comentário
Compartilhar em outros sites

Vamos analisar o código, obrigado pela colaboração.

  • Curtir 1

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Só uma pergunta. O método Send para que a thread chame ela, precisa estar em "protected" ? A pergunta é pelo motivo de manter compatibilidade com o código que já existia, deixando assim a possibilidade de quem não quiser usar thread, possa chamar o Send direto, para isso ele terá que voltar para "public"

 

Avalie essa alteração, em seguida me responda que subo sua implementação, do resto esta de acordo.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Disponível no SVN.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Uma coisa que observei ao testar é que, quando tem um erro no envio do e-mail (senha errada, por exemplo), a thread fica rodando sem parar.

 

Editado: Na verdade não está mostrando que ocorreu um erro.

Consultor SAC ACBr Jean Patrick Figueiredo dos Santos
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

                    DJPDV - Um frente de caixa SIMPLES e COMPLETO

Link para o comentário
Compartilhar em outros sites

Fiz algumas alterações:

 

Modifiquei para não ser preciso uma propriedade de envio extra e continuar compatível com códigos antigos:

 

Exemplos:

 

Sem Thread:

 

ACBrMail1.Send;

 

ou

 

ACBrMail1.Send(False);

 

Com Thread:

 

ACBrMail1.Send(True);

 

Fiz, também, modificações para poder pegar erros de envio usando Thread.

No evento OnMailProcess do componente usar, por exemplo:

  case aStatus of

    ...

    pmsError:

      Memo1.Lines.Add(ACBrMail1.GetLastSmtpError);

    ...

  end;

 

Ver anexo.

 

ACBrMail.pas

ACBrMail.pas

Consultor SAC ACBr Jean Patrick Figueiredo dos Santos
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

                    DJPDV - Um frente de caixa SIMPLES e COMPLETO

Link para o comentário
Compartilhar em outros sites

Jean vc tem permissão para subir, pode subir.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

ok, subi.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...