Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Mesmo eu alterando Aguardarenvio para true...

ocorre o erro... porém... no meu bloco Try... except... nenhum erro ocorre!!!

simplificando...

try...

envio...

showmessage('Enviado');

except

showmessage('nao enviado');

end;

a excecao ocorre porem é mostrado enviado.

Obrigado!!!

  • 2 meses depois ...
Postado

try...

envio...

showmessage('Enviado');

except

on E : Exception do

showmessage(e.message);

end;

Obrigado Waldir.

Mas ja tentei assim e nao funciona....

Postado

smtp.Sock.RaiseExcept := True;

Mudei direto na Unit ACBrNFeNotasFiscais.

Acrescentei o ThreadSMTP.smtp.Sock.RaiseExcept := True; na "procedure NotaFiscal.EnviarEmail" e nao adiantou tambem, usando o componente

TidSMTP da indy eu consigo controlar mas quando vou utilizar o recurdo do ACBR nao consigo.

Grato pela atencao.

ainda com o problema.....

Postado

tem que colocar o exit depois do showmessage

exemplo:

try

dmAux.EmailCorpo.From.Name := xxxxxxx;

dmAux.EmailCorpo.From.Address := 'xxxxxxxxxxxx';

dmAux.EmailCorpo.Recipients.EMailAddresses := dm.cdsClienteEMAIL.AsString;

dmAux.EmailCorpo.Priority := mpHighest;

dmAux.EmailCorpo.Subject := 'Arquivo xml da NF ' + IntToStr(dm.CDS_VENDA_CABNUMERONF.AsInteger);

dmAux.SMTP1.Host := 'smtps.uol.com.br';

dmAux.SMTP1.Username := 'XXXXXX';

dmAux.SMTP1.Password := 'XXXXXX';

dmAux.SMTP1.AuthType := satDefault;

dmAux.SMTP1.Port := 587;

dmAux.EmailCorpo.Body.Clear;

dmAux.EmailCorpo.Body.Add('Segue em anexo o arquivo xml ref a NF-e ' + IntToStr(dm.CDS_VENDA_CABNUMERONF.AsInteger));

anexo:= (ACBrNFe.NotasFiscais.Items[0].NomeArq);

TIdAttachmentFile.Create(dmAux.EmailCorpo.MessageParts, TFileName(Anexo));

dmAux.SMTP1.Connect;

dmAux.SMTP1.Send(dmAux.EmailCorpo);

dmAux.SMTP1.Disconnect;

DeleteFile(ACBrNFe.NotasFiscais.Items[0].NomeArq);

except

on e: Exception do

begin

ShowMessage('E-mail não enviado');

exit;

end;

end;

for i := 0 to 1000 do

ProgressBar1.Position:= 1000;

ShowMessage('E-mail enviado com sucesso');

ProgressBar1.Visible:= false;

Postado

Vlw cara mas não é bem isso que estou querendo.

Da forma q vc fez da pra tratar 100% entendo.

O problema e que eu quero tratar a função do ACBR e não de um componente da Indy q eu criei na aplicação, tipo isso:

--try

----AcNFE.NotasFiscais.Items[0].EnviarEmail(, , , , , , ,nil,True,False,nil,nil,False,False, ,True);

--Except on e : exception do

----begin

-----SalvaErro(e.message,'','');

-----ShowMessage('Atenção, ocorreu uma falha na tentativa de enviar o E-mail para o cliente ... !');

----end;

--end;

Atenção, o tratamento do código acima não funciona dessa forma, se alguém tiver uma forma de tratar que funcione me envie por favor.

Grato pela atenção.

  • Consultores
Postado

se o tratamento não funciona assim é porquê o método AcNFE.NotasFiscais.Items[0].EnviarEmail não está levantando uma exception.

Talvez a exception esteja sendo tratada lá dentro, ou não seja mesmo levantada. Você precisa verificar debugando.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

se o tratamento não funciona assim é porquê o método AcNFE.NotasFiscais.Items[0].EnviarEmail não está levantando uma exception.

Talvez a exception esteja sendo tratada lá dentro, ou não seja mesmo levantada. Você precisa verificar debugando.

Olá Barbosa.

Já verifiquei, e sim ela é tratada lá dentro porem a mensagem de retorno do ACBR no Exception não é das melhores e gostaria de modificar porem eu não quero modificar na unit do ACBR e sim fazer um tratamento externo, tipo eu quero informar para o meu cliente que a mensagem de fulano de tal não foi enviado e blablabla.

Grato pela atenção.

  • 3 meses depois ...
Postado

Boa tarde estou com a mesma necessidade, quero saber se ocorreu algo no momento do envio e mesmo protegendo o código não consigo pegar o erro !!!

Postado

ACBrNFe.NotasFiscais.Items[0].EnviarEmail(vQAux.FieldByName('MAIL_SERVER_SMTP_NFE').AsString,// edtSmtpHost.Text

vQAux.FieldByName('MAIL_PORTA_NFE').AsString,//, edtSmtpPort.Text

vQAux.FieldByName('MAIL_USER_NFE').AsString,//, edtSmtpUser.Text

vQAux.FieldByName('MAIL_SENHA_NFE').AsString,//, edtSmtpPass.Text

vQAux.FieldByName('MAIL_USER_NFE').AsString,//, edtSmtpUser.Text

vDest,

vQAux.FieldByName('MAIL_ASSUNTO_NFE').AsString,//, edtEmailAssunto.Text

mmEmailMsg,

cbEmailSSL,//, cbEmailSSL.Checked // SSL - Conexão Segura

True, //Enviar PDF junto

CC, //Lista com emails que serão enviado cópias - TStrings

nil, // Lista de anexos - TStrings

true, //Pede confirmação de leitura do email

true, //Aguarda Envio do Email(não usa thread)

vOPerador,//, 'ACBrNFe2' // Nome do Rementente

cbEmailSSL );

ShowMessage(ACBrNFe.NotasFiscais.Items[0].Msg);

Adicionei esta linha ShowMessage(ACBrNFe.NotasFiscais.Items[0].Msg); e o que acontece é que gera o erro pelo componente Acbr e nesta linha informada nada retorna

Postado

ACBrNFe.NotasFiscais.Items.Alertas funcionou corretamente consigo verificar por ela se o e-mail foi enviado ou não corretamente.Mas mesmo fazendo o tratamento por try o erro é exibido tem como ocultar o erro ?

Obrigado!

  • Curtir 1
Postado

try

ACBrNFe.NotasFiscais.Items[0].EnviarEmail(vQAux.FieldByName('MAIL_SERVER_SMTP_NFE').AsString,// edtSmtpHost.Text

vQAux.FieldByName('MAIL_PORTA_NFE').AsString,//, edtSmtpPort.Text

vQAux.FieldByName('MAIL_USER_NFE').AsString,//, edtSmtpUser.Text

vQAux.FieldByName('MAIL_SENHA_NFE').AsString,//, edtSmtpPass.Text

vQAux.FieldByName('MAIL_USER_NFE').AsString,//, edtSmtpUser.Text

vDest,

vQAux.FieldByName('MAIL_ASSUNTO_NFE').AsString,//, edtEmailAssunto.Text

mmEmailMsg,

cbEmailSSL,//, cbEmailSSL.Checked // SSL - Conexão Segura

True, //Enviar PDF junto

CC, //Lista com emails que serão enviado cópias - TStrings

nil, // Lista de anexos - TStrings

true, //Pede confirmação de leitura do email

true, //Aguarda Envio do Email(não usa thread)

vOPerador, //, 'ACBrNFe2' // Nome do Rementente

cbEmailSSL );

if ACBrNFe.NotasFiscais.Items[0].Alertas = '' Then

Begin

vQaux.Close;

vQaux.SQL.Clear;

vAux := 'UPDATE NOTA_FISCAL N ';

vAux := vAux + ' SET DT_EMAIL_NFE = SYSDATE';

vAux := vAux + ' WHERE N.NR_DA_NOTA = :NOTA';

vAux := vAux + ' AND N.ID = :ID ';

vAux := vAux + ' AND N.CD_SERIE = :CD_SERIE';

vQAux.SQL.Add(vAux);

vQAux.Params[0].AsString := Q1.FieldByName('NR_DA_NOTA').AsString;

vQAux.Params[1].AsString := Q1.FieldByName('ID').AsString;

vQAux.Params[2].AsString := Q1.FieldByName('CD_SERIE').AsString;

vQAux.ExecSQL();

vQAux.Close;

vQAux.Free;

End;

except

end;

Estou tratando a rotina de envio de e-mail com try dentro dela tem um if que verifica o alerta mas antes de chegar no alerta um erro é exibido para o cliente com a mensagem de alerta. "E essa mensagem que eu gostaria que não fosse exibida ou se eu pudesse tratá-la"

  • Curtir 1
Postado (editado)

Por exemplo se um email for cadastrado erradamente e enviado para o componente dará este erro :
"SMTP ERROR: MailTo:Permanent Failure-Syntax error
504 5.5.2 : Recipient address rejected: need fully-qualified address."

Só que se vc. reparar no código que passei acima o mesmo esta protegido só que não entra no except !!!

Editado por EMBarbosa
Post estava quebrando o layout das fontes do fórum
  • 1 ano depois...
Postado

Por exemplo se um email for cadastrado erradamente e enviado para o componente dará este erro :

"SMTP ERROR: MailTo:Permanent Failure-Syntax error

504 5.5.2 : Recipient address rejected: need fully-qualified address."

Só que se vc. reparar no código que passei acima o mesmo esta protegido só que não entra no except !!!

 Conseguiram resolver este problema?

  • 2 meses depois ...
  • 1 mês depois ...
Postado

O erro que dá ocorre pela IDE que exibe a mensagem quando você esta rodando debugando ou se rodar direto do executavel também ocorre?

Porque no debugger a mensagem vai subir mesmo tratando a exception.

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