Ir para conteúdo
  • Cadastre-se

dev botao

Anexo xml - Envio de email pelo ACBRMail - Delphi 7


Ver Solução Respondido por Francielle Herling de Oliveira da Silva,

Recommended Posts

Postado

Olá.

Estou com problemas ao abrir arquivo xml no anexo de email.

O envio de email é diretamente pelo componente ACBRMail. O anexo e o envio de email ocorre normalmente, sem erros. O problema está ao abrir o anexo .xml.

O arquivo é salvo de uma Stringlist:

  //Gera o arquivo XML para email no diretorio da aplicaçao
  StrNFeEmail.SaveToFile(UTF8Encode('NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'));
  sXML := sCaminhoSistema + 'NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'; 

Ao acessar o arquivo salvo no meu computador (antes de anexar ao email) eu consigo abri-lo normalmente pelo navegador.

Código usado para anexar o xml no ACBRMail e enviando o email:
 

//Envio de email diretamente pelo componente ACBRMail
    MS := TMemoryStream.Create;
    try
       MS.LoadFromFile(sXMl);
       ACBrMail.AddAttachment(MS, ExtractFileName(sXMl)); {Anexando arquivo xml}
       if sNota <> EmptyStr then
          ACBrMail.AddAttachment(sNota, ExtractFileName(sNota));
       if (sLavagem <> EmptyStr) and (not usaNFSe) then
          ACBrMail.AddAttachment(sLavagem, ExtractFileName(sLavagem));
       if sBoleto <> EmptyStr then
          ACBrMail.AddAttachment(sBoleto, ExtractFileName(sBoleto));
    finally
       MS.Free;
    end;

    try
       ACBrMail.Send(False);
    except
       on Exception do
      // ignore all exceptions
    end;

image.png.bf1e09261636e6e462d600dae7407066.png

Esse é o erro que aparece quando eu tento abrir o arquivo xml anexado no email. Olhando o arquivo, vi que uma palavra continha os caracteres "Ç" e "Ã", ao fazer a correção manualmente, consegui abrir o arquivo.

Teria algum jeito de fazer essa substituição dos caracteres antes de anexar o xml?

Desde ja agradeço a atenção de todos.

 

 

  • Moderadores
Postado
43 minutos atrás, Francielle Herling de Oliveira da Silva disse:
  //Gera o arquivo XML para email no diretorio da aplicaçao
  StrNFeEmail.SaveToFile(UTF8Encode('NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'));
  sXML := sCaminhoSistema + 'NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml';

olhando aqui . porque é necessário fazer isso?

tu já não usa direto do componente o envio?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Na primeira linha: É porque nesse caso, eu estou pegando as informações do xml diretamente do meu banco de dados e salvando o arquivo na pasta do sistema. (sistema bem antigo)

Eu faço o select no banco, coloco as informações em uma StringList e depois converto para UTF8, assim:

StrNFeEmail.Text := Trim(StrNFeEmail.Text);
StrNFeEmail.Text := StringReplace(StrNFeEmail.Text, 'ISO-8859-1', 'UTF-8', [rfReplaceAll]);
StrNFeEmail.Text := UTF8Encode(StrNFeEmail.Text);

Salvo a stringlist no diretório do meu sistema em .xml

StrNFeEmail.SaveToFile(UTF8Encode('NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'));

e depois em uma outra variável, eu incluo o caminho do sistema, para o acbrmail buscar esse arquivo e anexar.

sXML := sCaminhoSistema + 'NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'; //Fran 02/10/2024 - Anexo para envio pelo ACBRMail

 

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.