Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Erro Ao Enviar E-Mail Pelo Acbr


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

Recommended Posts

  • Membros Pro

Bom dia,

Estou com problemas na hora de enviar e-mails pelo ACbr. Se alguma configuração dos dados do usuário estiver incorreta (smtp, senha, etc), o componente gera uma exceção dentro do ACbr. Até aí tudo bem. O problema é que está exceção não é jogada para fora do componente e não pode ser tratada externamente pelo meu sistema. Por exemplo:

Eu coloquei a chamada da função de enviar o e-mail dentro de um bloco try except e mesmo ocorrendo a exceção dentro do componente o meu bloco try except não é acionado e o programa não apresenta o erro, dando então a mensagem de envio concluído quando este não foi.

Para continuar enviando eu precisei entrar no componente e alimentar uma variável global do meu projeto para que pudesse gerar o erro para o meu sistema. 

 

Segue procedure com a alteração citada:

 

procedure TSendMailThread.Execute;
var
   I: integer;
begin
  inherited;
  try
    frPrincipal.ACBR_Enviado:= true;
    Terminado := False;
    try
      if not smtp.Login() then
      begin
        //raise Exception.Create('SMTP ERROR: Login:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        frPrincipal.ACBR_Enviado:= false;
        Abort;
      end;
      if not smtp.MailFrom( sFrom, Length(sFrom)) then
      begin
        //raise Exception.Create('SMTP ERROR: MailFrom:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        frPrincipal.ACBR_Enviado:= false;
        Abort;
      end;
      if not smtp.MailTo(sTo) then
      begin
        //raise Exception.Create('SMTP ERROR: MailTo:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        frPrincipal.ACBR_Enviado:= false;
        Abort;
      end;
      if (sCC <> nil) then
      begin
        for I := 0 to sCC.Count - 1 do
        begin
          if not smtp.MailTo(sCC.Strings) then
          begin
            //raise Exception.Create('SMTP ERROR: MailTo:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
            ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
            frPrincipal.ACBR_Enviado:= false;
            Abort;
          end;
        end;
      end;
 
      if not smtp.MailData(slmsg_Lines) then
      begin
        //raise Exception.Create('SMTP ERROR: MailData:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        frPrincipal.ACBR_Enviado:= false;
        Abort;
      end;
      if not smtp.Logout() then
      begin
        //raise Exception.Create('SMTP ERROR: Logout:' + smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        ShowMessage('Falha ao enviar e-mail. Verifique suas configurações de e-mail.:' +#13+ smtp.EnhCodeString+sLineBreak+smtp.FullResult.Text);
        frPrincipal.ACBR_Enviado:= false;
        Abort;
      end;
    finally
      try
        smtp.Sock.CloseSocket;
      except
      end ;
      Terminado := True;
    end;
  except
    Terminado := True;
    HandleException;
  end;
end;
 

 

Obrigado pela atenção.

ACBrNFeNotasFiscais.pas

Link to comment
Share on other sites

  • Membros Pro

Eu verifiquei no arquivo LEIA-ME.txt e o número de versão que tem no mesmo é o seguinte:  Projeto: Componentes ACBr   Versão 0.9.0b     

 

Com relação ao s SVN, o endereço é este: https://acbr.svn.sourceforge.net/svnroot/acbr/trunk

 

Estou começando a usar o SAC agora e muitas coisas ainda desconheço dos componentes.

Link to comment
Share on other sites

  • Moderadores

Você está utilizando o endereço antigo do repositório, por favor faça um relocate do seu repositório seguindo os passos.

 

1. Clique com o botão direito no diretório;

2. Clique em tortoiseSVN

3. Clique em relocate;

4. Na caixa de mensagem coloque o seguinte endereço: svn://svn.code.sf.net/p/acbr/code/

5. Clique em OK e aguarde o fim do processo;

6. Faça um update do repositório local como você está acostuma;

7. Utilizando o ACBrInstall ou manualmente como preferir, faça a recompilação de todos os pacotes que você utiliza.

 

Para mais informações consulte este tópico: 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link to comment
Share on other sites

  • Consultores

Boa tarde Werner,

 

Se o erro ocorre com o pacote de instalação do ACBrCTe, por favor baixe novamente os fontes e tente instalar.

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

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