Envio de Anexo

galera espero q me ajudem…

meu codigo para mandar e-mail com anexo é este:

public class sendfile
{

        public static void main(String[] args)
        {

      String to = "@hotmail.com";
      String from = "@hotmail.com";
      String filename = "exemplo.extensao";
      String msgText1 = "Enviando arquivo.";
      String subject = "Enviando arquivo";

      // cria algumas propriedades e obtem uma sessao padrao
      Properties props = System.getProperties();
      props.put("smtp.gmail.com", "465");
      props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
      props.put("mail.smtp.starttls.enable","true");
      props.put("mail.smtp.host", "smtp.gmail.com"); //server SMTP do GMAIL
      props.put("mail.smtp.auth", "true"); //ativa autenticacao
      props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
      props.put("mail.debug", "true");
      props.put("mail.smtp.port", "465"); //porta
      props.put("mail.smtp.socketFactory.port", "465"); //mesma porta para o socket
      props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
      props.put("mail.smtp.socketFactory.fallback", "false");

      Session session = Session.getInstance(props, null);

      try
      {
          // cria a mensagem
          MimeMessage msg = new MimeMessage(session);
          msg.setFrom(new InternetAddress(from));
          InternetAddress[] address = {new InternetAddress(to)};
          msg.setRecipients(Message.RecipientType.TO, address);
          msg.setSubject(subject);

          Transport tr;

          tr = session.getTransport("smtp"); //define smtp para transporte
	            /*
	             *  1 - define o servidor smtp
	             *  2 - seu nome de usuario do gmail
	             *  3 - sua senha do gmail
             */
	  tr.connect("smtp.gmail.com", "meu email", "minha senha");
	  msg.saveChanges(); // don't forget this
	            //envio da mensagem

          // cria a primeira parte da mensagem
          MimeBodyPart mbp1 = new MimeBodyPart();
          mbp1.setText(msgText1);

          // cria a segunda parte da mensage
          MimeBodyPart mbp2 = new MimeBodyPart();

          // anexa o arquivo na mensagem
          FileDataSource fds = new FileDataSource(filename);
          mbp2.setDataHandler(new DataHandler(fds));
          mbp2.setFileName(fds.getName());

          // cria a Multipart
          Multipart mp = new MimeMultipart();
          mp.addBodyPart(mbp1);
          mp.addBodyPart(mbp2);

          // adiciona a Multipart na mensagem
          msg.setContent(mp);

          // configura a data: cabecalho
          msg.setSentDate(new Date());

          // envia a mensagem
          tr.sendMessage(msg, msg.getAllRecipients());

      }
      catch (MessagingException mex)
      {
          mex.printStackTrace();
          Exception ex = null;
          if ((ex = mex.getNextException()) != null) {
        ex.printStackTrace();
          }
      }
        }
  }

porem o e-mail chega desta forma: (coloquei entre codigo para destacar e ficar mais .CHAMATIVO( ) rs)


Enviando arquivo.
------=_Part_1_5256233.1298002400835
Content-Disposition: attachment; filename=serial.txt

LDY4-YJWU-DSE4-EPYQ-C088 
------=_Part_1_5256233.1298002400835--
.
250 2.0.0 OK 1298002411 z12sm2027019anp.39

O que chega é isso ai em cima, vi q muita gente no GUJ conseguiu, tomei-os como exemplo, mas sem sucesso !!!
preciso mandar arquivos de diversas extensões…

caso eu não consiga, vou ter q contratar os serviços de Chico Xavier pra ler essa criptografia…rs

aos q puderem me ajudar agradeço…

Acredito que você se perdeu em algum lugar, segue um exemplo que está funcionando perfeitamente (usando para enviar arquivos de notas fiscais eletrônicas para o contador, em arquivo zipado).

[code] int portaPop3 = 995;
int portaSmtp = 587;
boolean autentica = true;
String proxyHost = “pop.gmail.com”;
String proxyPorta = portaPop3 == 0 ? “” : portaPop3 + “”;
String smtpHost = “smtp.gmail.com”;
String smtpPorta = portaSmtp + “”;
String nossoEmail = "LOGIN@gmail.com";
String userName = “LOGIN”;
String password = “SENHA”;

    boolean gmail = nossoEmail.endsWith("gmail.com");

    /* Mostrar ou nao na tela de console todo o processo de envio de email */
    boolean debug = false;

    Properties props = System.getProperties();
    if (proxyHost.length() > 3) { // esta usando um proxy?
        props.put("http.proxyHost", proxyHost);
        props.put("http.proxyPort", proxyPorta); /* Porta SOCKS 1080, HTTP 8080 */
    }

    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.debug", "true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.mime.charset", "ISO-8859-1");
    props.put("mail.smtp.host", smtpHost);
    props.put("mail.smtp.port", smtpPorta);

    if (gmail) {
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.fallback", "false");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    }

    javax.mail.Authenticator auth = null;
    if (autentica) {
        props.put("mail.smtp.auth", "true");
        auth = new SMTPAuthenticator(userName, password);
    }
    Session session = Session.getInstance(props, auth);
    session.setDebug(debug);

    InternetAddress emailSistema = new InternetAddress(emitente.getEmail(), emitente.getNome());
    InternetAddress[] emailEmpresa = new InternetAddress[]{new InternetAddress("email_destino@servidor.com.br", "Nome do Destino")};
    MimeMessage message = new MimeMessage(session);
    message.setFrom(emailSistema);
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
    message.setSubject(subject);
    message.setReplyTo(emailEmpresa);

    // Cria o corpo da mensagem
    MimeBodyPart messageBodyPart = new MimeBodyPart();

    // Preenche a mensagem
    // Aqui você define se deseja enviar em puro texto ou mensagem
    // com formatação HTML
    messageBodyPart.setContent(msg, "text/html");
    Multipart multiPart = new MimeMultipart();
    multiPart.addBodyPart(messageBodyPart);

    // Se não desejar enviar nenhum arquivo em anexo
    if (arquivo != null) {
        messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(arquivo);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(arquivo.getName());
        multiPart.addBodyPart(messageBodyPart);
    }

    // Monta todo o corpo da mensagem (inclusive com o anexo)
    message.setContent(multiPart);

    Transport.send(message);[/code]

Experimente passar um File FileDataSource fds = new FileDataSource(filename); ao inves de String