Ir para conteúdo
  • Cadastre-se

dev botao

Como Tratar A Exceção Ao Enviar Email Do Boleto?


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

Recommended Posts

Boa tarde...

Talvez ja tenha a solução em algum lugar, mas não consegui encontrar.

Mas seguinte...

Geração, impressão, pdf..... dos boletos tudo 100%. (Show de bola);

Apenas não consigo tratar a exceção  caso o envio do boleto via email falhe.

A exceção é exibida na tela... mas o Try... except não a reconhece.

 

  sCC:=TStringList.Create;
  sCC.Clear;  // Usando para add outros e-mail como Com-Cópia
  try
    ACBrBoleto1.EnviarEmail(edtSmtpHost,
                            edtSmtpPort,
                            edtSmtpUser,
                            edtSmtpPass,
                            Trim(Edit7.Text),   // email do remetente
                            Trim(Edit1.Text),   // e-mail do destinatário
                            Trim(Edit6.Text),   // Assunto
                            Memo1.Lines,        // Mensagem
                            cbEmailSSL,         // SSL
                            True,                 // Enviar em PDF
                            sCC,                  // sCC
                            nil,                  // Anexos
                            True,                 // Pede Confirmação de Recebimento
                            True,                 // Aguarda o Envio
                            Trim(BDados.TbEmpresaNOMEEMP.Text),    // Nome do remetente
                            True);                 // TLS
      eSucesso  := true;
ShowMessage('01');
  except
    on e: Exception do
    begin
      eSucesso  := false;
      ShowMessage(e.Message);
ShowMessage('02');
    end;
  end;
  sCC.Free;
 
O ShowMessage('01') é retornado em qualquer situação, dando erro ou não.
Se alguem ja passou por isso... e puder me dar uma luz.. eu ficarei grato.
 
Abraços...
Jadir Garcia.
Link para o comentário
Compartilhar em outros sites

O seu except está abaixo do Showmessage('0');

E o ShowMEssage('0'), está abaixo do comando EnviarEmail do AcbrBoleto.

 

Exemplificando, ele está

 

try

  //comando enviar email

  //showmessage('1');

except

  //restante do except

end;

 

Portanto, para tratar esta exceção, você tem que definir primeiro apenas o que vc quer tratar.

 

try

  //procedimento enviaremail

except

  //showmessage('1');

  on e : Exception do

  begin

    Showmessage(e.message);

    //showmessage('2');

  end;

end;

 

Entendeu?

Editado por Ramon Ruan
Link para o comentário
Compartilhar em outros sites

Bom dia Ramon. Obrigado por responder...

mas não é isso não...

mesmo que eu retire o eSucesso e o ShowMessage('01') e deixe apenas o precedimento EnviarEmail()... Ele não executa a exceção. Mesmo que falhe o envio..(O componente ACBR mostra a exceção) mas ela não é tratada pelo except.

 

Abracos....

Jadir Garcia

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...

Ah, tudo ok JGarcia.

Tava revendo o código do EnviaEmail do Acbr. Ele tem um  try finally. Pode ser devido a este try que ele não ta captando a exceção. O que poderia tentar realizar é, colocar um raise exception para tentar mostrar que deu erro. Ou invés disso, coloca um try com except dentro. 

 

É somente uma suposição, mas acredito que um try com finally não executa o except, mesmo se houver erro no try, ele deixa passar.

 

Qualquer coisa estamos a disposição.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3180 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...