Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

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]

  • Membros Pro
Postado

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]

  • 1 mês depois ...
Postado

Bom dia

Daniel, no enviar email de NFe/Evento, estava ocorrendo um erro referente ao "Assunto".

Alterei a ACBrDFe para corrigir o problema. Por favor verifique se está correta a minha alteração (linha 271)

 

 

 

ACBrDFe.pas

  • Fundadores
Postado

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.

Postado (editado)

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