Ir para conteúdo
Fórum Script Brasil
  • 0

Tamanho do TIdAttachment no Indy9


Tetzner

Pergunta

Pessoal,

Eu estou montando um programinha de email, mas as vezes o anexo do email vem nulo e as vezes funciona.

Queria saber como verificar o tamanho do anexo no email antes de enviar?

só assim para eu poder identificar quando for nulo o que é que está causando o erro.

Alguém sabe me dizer como vejo o tamanho do arquivo anexado na mensagem ( TIdAttachment ) ?

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

9 respostass a esta questão

Posts Recomendados

  • 0
Alguém sabe me dizer como vejo o tamanho do arquivo anexado na mensagem ( TIdAttachment ) ?

Dica de Christian

function TamanhoArquivo(Arquivo: string): Integer; 
begin 

   try 

       Result := 0; 
       with TFileStream.Create(Arquivo, fmOpenRead or fmShareExclusive) do begin 
          try 
            Result := Size; 
          finally 
            Free; 
          end; 
       end; 

   except end; 

end;
// *********** Anexando Arquivos ****************** // 

    tam := 0;  ProgressBar1.Position := 0; 

    if (ListBox1.Items.Count > 0) then 
     for i := 0 to ListBox1.Count - 1 do begin 
       TIdAttachment.Create(idMsgSend.MessageParts, ListBox1.Items.Strings[i]); 
       tam := tam + TamanhoArquivo(ListBox1.Items.Strings[i]); 
     end; 
    ProgressBar1.Max := tam;

E no Evento OnWork do TidSMTP você coloca esse código:

Código:

ProgressBar1.Position := AWorkCount;

OBS: voce pode testar a variavel tam .. se for 0 o arquivo esta vazio.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

acho que esqueci de citar que é o tamanho do anexo e não do arquivo fonte.

a sua pergunta

Alguém sabe me dizer como vejo o tamanho do arquivo anexado na mensagem ( TIdAttachment ) ?

acho que é isso que voce quer.... é só expirementar e ver o que acontece.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas,

acho que seu CTRL+C CTRL+V falhou na resposta ...

veja acima, não saiu a resposta a:

"

acho que esqueci de citar que é o tamanho do anexo e não do arquivo fonte.

seria alguma propriedade ou método do TIdAttachment ??

TIdAttachment.size(idMsgSend.MessageParts) ??

"

Link para o comentário
Compartilhar em outros sites

  • 0
acho que esqueci de citar que é o tamanho do anexo e não do arquivo fonte.

TIdAttachment.size(idMsgSend.MessageParts)

Lista de partes de mensagem para a mensagem.

propriedade MessageParts: TIdMessageParts;

Descrição

MessageParts é um TIdMessagePartsList usado para armazenar os componentes de TIdMessagePart que compõem a mensagem. MessageParts pode conter dois descendentes de TIdMessagePart: TIdText e TIdAttachment.

MessageParts é usado quando IsEncoded é fixado para True (em enviar), ou NoDecode é fixado para falso para receber.

O que eu quis dizer é: use o codigo e modifique-o para o seu uso... ai voce vai conseguir fazer o que esta querendo

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
pensei que fosse do Indy ( eu uso o 9 )

e é ... me expressei errado .. é porque eu uso o delphi 7 e este componente ( Indy 9 ) esta instalado nele.

vou dar uma pesquisada, e depois posto .... enquanto isto se alguém tiver outra sugestão...

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...