Pesquisar na Comunidade
Showing results for tags 'Envio de e-mail.'.
Encontrado 1 registro
-
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