Salvar Anexo de e-mail - O que está errado ?????
Olá pessoal,
Estou tendo o seguinte problema. Ao salvar o anexo de um e-mail com extensão XML que se refere ao schema da NFE não é igual ao arquivo anexado original do EMAIL.
Estou utilizando delphi 2007 com o componnte INDY.. (TidMessage, TIDPOP3)
Código :
for j := 0 to pred(msgxml.MessageParts.Count) do
begin
if (msgxml.MessageParts.Items[j] is TIdAttachment) then
begin
xml := TIdAttachment(msgxml.MessageParts.Items[j]).FileName;
tmp := foldertmp + '\' + xml; if lowercase(ExtractFileExt(tmp)) = '.xml' then
TIdAttachment(msgxml.MessageParts.Items[j]).SaveToFile(tmp);
end;
end; NEste caso ele esta salvando no seguinte conteudo do XML o campo : <qCom>858..0000</qCom>. Observa-se que ele está adicionando dois pontos [..] pois o arquivo original está somente com um ponto O arquivo original esta com o seguinte conteudo : <qCom>858.0000</qCom> Verifiquei se existe algum caracter especial e não foi encontrado nada. Testei enviando para mim mesmo o arquivo original, salvei o anexo e está tudo ok. Isto não acontece com todos os XML. Mas quando ocorre o sofware da fazenda não abre devido a este erro. O que será que fiz de errado ?? Abraços george
begin
if (msgxml.MessageParts.Items[j] is TIdAttachment) then
begin
xml := TIdAttachment(msgxml.MessageParts.Items[j]).FileName;
tmp := foldertmp + '\' + xml; if lowercase(ExtractFileExt(tmp)) = '.xml' then
TIdAttachment(msgxml.MessageParts.Items[j]).SaveToFile(tmp);
end;
end; NEste caso ele esta salvando no seguinte conteudo do XML o campo : <qCom>858..0000</qCom>. Observa-se que ele está adicionando dois pontos [..] pois o arquivo original está somente com um ponto O arquivo original esta com o seguinte conteudo : <qCom>858.0000</qCom> Verifiquei se existe algum caracter especial e não foi encontrado nada. Testei enviando para mim mesmo o arquivo original, salvei o anexo e está tudo ok. Isto não acontece com todos os XML. Mas quando ocorre o sofware da fazenda não abre devido a este erro. O que será que fiz de errado ?? Abraços george
George Piaulino
Curtidas 0
Respostas
Leonardo Xavier
14/09/2010
Ja tentou com savedialog?
GOSTEI 0
George Piaulino
14/09/2010
Ja tentou com savedialog?
Não tem como salvar com SAVEDIALOG.
Já fiz os seguintes procedimentos :
Atualização do DELPHI 2007
Atualizaçõ do INDY
Desabilitar o antivirus (AVG) de verificação de email
Salvar em stream
Em todo caso agradeço atenção.
Abraços
GOSTEI 0
Mateus Zachi
14/09/2010
Olá, estou com o mesmo problema.
Já tentei de tudo, mandei gravar o arquivo de diferentes formas, instalei o Indy 10,9..
Mudei a propriedade ContentType, Encoding...
Alguém tem alguma dica de como resolver ?
Obrigado
Já tentei de tudo, mandei gravar o arquivo de diferentes formas, instalei o Indy 10,9..
Mudei a propriedade ContentType, Encoding...
Alguém tem alguma dica de como resolver ?
Obrigado
GOSTEI 0
George Piaulino
14/09/2010
Olá, estou com o mesmo problema.
Já tentei de tudo, mandei gravar o arquivo de diferentes formas, instalei o Indy 10,9..
Mudei a propriedade ContentType, Encoding...
Alguém tem alguma dica de como resolver ?
Obrigado
Já tentei de tudo, mandei gravar o arquivo de diferentes formas, instalei o Indy 10,9..
Mudei a propriedade ContentType, Encoding...
Alguém tem alguma dica de como resolver ?
Obrigado
O que fiz foi simples.
Antes de salvar fiz o tratamento manualmente antes de salvar o arquivo em extensão XML utilizando replacestring jogando o conteudo em uma variavel.
Qualquer dúvida estou a disposição, no XE já resolveram este problema.
GOSTEI 0
Mateus Zachi
14/09/2010
Muito obrigado pela informação George.
Vou fazer o que você recomendou.
Abraços
Vou fazer o que você recomendou.
Abraços
GOSTEI 0