Problema em Enviar email

Estou utilizando a seguinte classe para enviar email:

[code]import javax.mail.;
import javax.mail.internet.
;

import java.util.Properties;

public class Email {

public class SMTPAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username = "meuemail@gmail.com";
String password = “******”;
return new PasswordAuthentication(username, password);
}
}

public void sendSimpleMail(
String mailServer,
String subject,
String to,
String from,
String mensagem)
throws AddressException, MessagingException {

  Properties mailProps = new Properties();
  //definição do mailserver 

  mailProps.put("mail.smtp.host", mailServer);

  Authenticator auth = new SMTPAuthenticator();
  Session mailSession = Session.getDefaultInstance(mailProps, auth);

  mailProps.put("mail.smtp.auth", "true");
  mailProps.put("mail.debug", "true");
  mailProps.put("mail.smtp.debug", "true");
  mailProps.put("mail.mime.charset", "ISO-8859-1");
  mailProps.put("mail.smtp.port", "465");
  mailProps.put("mail.smtp.starttls.enable", "true");
  mailProps.put("mail.smtp.socketFactory.port", "465");
  mailProps.put("mail.smtp.socketFactory.fallback", "false");
  mailProps.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

  //As duas linhas seguintes de código, colocam no 
  //formato de endereços, 
  //supostamente válidos, de email os dados 
  //passados pelos parâmetros to e from. 
  InternetAddress destinatario = new InternetAddress(to);
  InternetAddress remetente = new InternetAddress(from);

  //As duas linhas de código a seguir, são 
  //responsáveis por setar os atributos e 
  //propriedas necessárias do objeto message 
  //para que o email seja enviado. 
  //inicialização do objeto Message 
  Message message = new MimeMessage(mailSession);

  //Definição de quem está enviando o email 
  message.setFrom(remetente);

  //define o(s) destinatário(s) e qual o tipo do 
  //destinatário. 
  //os possíveis tipos de destinatário: TO, CC, BCC 

  message.setRecipient(Message.RecipientType.TO, destinatario);
  //definição do assunto do email 

  message.setSubject(subject);
  //definição do conteúdo da mesnagem e do 
  //tipo da mensagem 

  message.setContent(mensagem.toString(), "text/html");
  //a linha de código seguinte é a responsável 
  //pelo envio do email 

  Transport.send(message);

}
public static void main(String args[]) throws AddressException, MessagingException{
Email email = new Email();
email.sendSimpleMail(“smtp.gmail.com”, “Olá!”, "meuemail@gmail.com",
"meuemai@gmail.com", “Oi, tudo bem??”);
}
} [/code]

Na minha máquina funciona perfeitamente, mas na máquina onde ele terá que ficar acontece o seguinte erro:

[quote]Exception in thread “main” javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/html
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:625)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at Email.sendSimpleMail(Email.java:75)
at Email.main(Email.java:79)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/html
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:851)
at javax.activation.DataHandler.writeTo(DataHandler.java:305)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:585)
… 4 more[/quote]

A única explicação que eu vejo, não sei se estou falando besteira, mas é que o MIME type da máquina que dá esse erro está diferente da minha máquina. Será que tem como colocar alguma coisa no código para não dar esse erro ou tenho que mudar a configuração de alguma coisa no windows?? Conferi todas as bibliotecas e classpath e está tudo igual nas 2 máquinas.

http://www.jguru.com/faq/view.jsp?EID=237257

A resposta da FAQ diz para mexer no /etc/mailcap se for Unix. No Windows eu nao sei como mexer nisto.

Em um dos posts quase no fim da pagina, tem como fazer programando.

Muito obrigado!! Problema resolvido. Foi só colocar esse trecho no código:

MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc);