Baixar anexos do e-mail

Olá,

Eu estou precisando fazer uma rotina que faça o seguinte:

  • Pegue os anexos de todos os e-mails que estão na caixa “INBOX” da minha conta de e-mail e salve-os em um determinado diretório do meu HD…

  • …após salvar o anexo, deletar o e-mail.

…estou com dificuldades para utilizar o JavaMail, no entando, consegui fazer uma rotina que localiza esses e-mails, mas não baixa os anexos.

…alguém pode me ajudar???

Olá thiagokf,

Eu também tentei utilizar o JavaMail para isso sem sucesso. Iniciei o desenvolvimento de uma classe Mime Parser na marra, mas o problema é complicado.

O primeiro conceito, só para recordar, é que as mensagens de e-mail ou são simples (vamos chamar de RFC-822) ou são multiparte (vamos chamar de MIME).

As mensagens RFC-822 devem ser mostradas imediatamente.

As diversas partes de uma mensagem MIME podem conter texto, imagens, html, etc.

Os problemas a serem resolvidos neste caso são:

  • destacar o cabeçalho RFC-822;
  • extrair o separador multiparte;
  • determinar o charset;
  • converter todo o resto da mensagem para o charset interno;
  • separar as partes (que podem ser aninhadas);
  • determinar o tipo MIME de cada parte;
  • determinar se o conteúdo é in-line (o tipo MIME text/plain sempre é);
  • detrminar a codificação dos dados de cada parte (base64, por exemplo);
  • efetuar decodificação de cada parte;
  • chamar o codec apropriado para os tipos multimídia;
  • aplicar o antivírus nas partes in-line;
  • mostrar as partes in-line de acordo com o layout do seu tipo MIME;
  • aplicar o antivírus nas outras partes;
  • salvar as outras partes (os famosos anexos);
  • gerar links para as outras partes.

O JavaMail deve ter tudo isso aí escondido em algum lugar. Acho que falta um tutorial maceteado.

A minha tentativa de fazer isso (apenas um dos arquivos) pode ser vista no link abaixo:

http://hipersoft.com.br/download/MIMEParser.java

Grato,