Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

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

  • Moderadores
Postado

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