Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao enviar email de evento de NFe


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

Recommended Posts

  • Membros Pro

Bom dia amigos,

Depois que migrei para o trunk2 estou tenho problemas ao enviar email de eventos.

Estrando é que só acontece na primeira vez. O erro é access violation.........

Mais estranho ainda que não aparece a mensagem enviado email configurado no componente ACBRNFe

Já li e reli o meu fonte e não achei. Antes não acontecia esse problema.

Segue o meu código abaixo.

 if Para <> '' then
  begin
    try
      ConfiguraEmail;
      LerConfiguracao;
      Path := PastaMensalNota(DM1.TB08400DTEMISSAO.AsDateTime, 'NFe');
      Chave := DM1.TB08400CHAVENFE.Value;
      DM1.ACBrNFe1.NotasFiscais.Clear;
      DM1.ACBrNFe1.NotasFiscais.LoadFromFile(Path + Chave + '-nfe.XML');
      DM1.ACBrNFe1.DANFE.PathPDF := PastaMensalNota(DM1.TB08400DTEMISSAO.AsDateTime, 'PDF');
      Assunto := 'Evento de NF-e - Cancelamento';
      DM1.ACBrNFe1.EventoNFe.Evento.Clear;
      DM1.ACBrNFe1.EventoNFe.LerXML(Path);
      Evento := TStringList.Create;
      Evento.Clear;
      Evento.Add(Path);

      CC := TStringList.Create;
      Memo := TStringList.Create;
      CC := nil;
      Memo.Text := 'Esta mensagem refere-se ao ' + Assunto;
      
      DM1.ACBrNFe1.EnviarEmailEvento(Para, Assunto, Memo
        , CC //Lista com emails que serão enviado cópias - TStrings
        , Evento); // Lista de anexos - TStrings
    finally
      CC.Free;
      Memo.Free;
      Evento.Free;
    end;
  end;

 

Verifiquei que o problema acontece nessa procedure da unit ACBRNFe.pas, mais especificamente em 

EnviarEmail(sPara, sAssunto, sMensagem, sCC, AnexosEmail, nil, '');

 

procedure TACBrNFe.EnviarEmailEvento(sPara, sAssunto: String; sMensagem,
  sCC, Anexos: TStrings);
var
  NomeArq: String;
  AnexosEmail: TStrings;
begin
  AnexosEmail := TStringList.Create;
  try
    AnexosEmail.Clear;

    if Anexos <> nil then
      AnexosEmail.Text := Anexos.Text;

    ImprimirEventoPDF;
    NomeArq := OnlyNumber(EventoNFe.Evento[0].InfEvento.Id);
    NomeArq := PathWithDelim(DANFE.PathPDF) + NomeArq + '-procEventoNFe.pdf';
    AnexosEmail.Add(NomeArq);
    EnviarEmail(sPara, sAssunto, sMensagem, sCC, AnexosEmail, nil, '');

  finally
    AnexosEmail.Free;
  end;
end;

 

Editado por cardilo

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Copie as DLLs da Pasta DLLs\OpenSSL\0.9.8.14\ para mesma pasta do seu .EXE

Daniel,

As dlls estão lá. Curioso é que envia na segunda tentativa.. Primeiro dá o erro que mencionei. Depois eu tento novamente e daí envia.

Não seria alguma variável que não é gerado da primeira vez?

Andei comparando essa função com a função da Nota fiscal eletrônica e elas são distintas. Não teriam que ser iguais?

Grato.

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Seria necessário debugar mais afundo... entrar com o F7 nas rotinas.. e ver quem realmente dispara esse A.V.

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Fundadores

A alteração parece correta... mas o código antigo também está...

Antigo:

    MAIL.Body.Text := (sMensagem.Text);

Sua modificação:

MAIL.Body.Assign(sMensagem)

 

Qual é a exata mensagem de erro ou o problema ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

O erro é um access violation.

Escrevi errado, não é o "Assunto" e sim o corpo do e-mail. Como estou revendo e refatorando tbm meu código dos documentos fiscais, atualizo diariamente o fonte do ACBr. 

Eu ou vc, talvez nos confundimos rsrsrs. Mas  aqui está exatamente ao contrário:

Fonte ACBr:

MAIL.Body.Assign(sMensagem);

Minha alteração:

MAIL.Body.Text := (sMensagem.Text);

:)

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

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