Problemas para enviar email!

import java.security.Security;
 import java.util.Properties;
 import java.util.StringTokenizer;
 
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.PasswordAuthentication;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.swing.JOptionPane;
 import schweb.Email;
 
 public class MandaEmail {
     
     private String nomeServidor = "smtp.gmail.com";
     private String porta = "465";
     private String msgTxt, assunto, emailFrom;
     private String ssl_factory = "javax.net.ssl.SSLSocketFactory";
     private String senha;
     private String destinatario;
     
     public MandaEmail( Email email ){
         
         Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
         msgTxt = email.getMsgTexto();
         assunto = email.getMsgAssunto();
         emailFrom = email.getMsgFrom();
         destinatario = email.getRecipients();
         senha = email.getSenha();
         try{
             mandaMsgUsandoSSL(destinatario, assunto, msgTxt, emailFrom);
         }catch( javax.mail.MessagingException ex ){
             ex.printStackTrace();
         }  
         JOptionPane.showMessageDialog( null, "Solicitação Reserva enviado com sucesso !" );
     }
     
     public void mandaMsgUsandoSSL(String recipients, String assunto, String mensagem, String origem) throws MessagingException {
         boolean debug = true;
         
         Properties props = new Properties();
         props.put("mail.smtp.host", nomeServidor);
         props.put("mail.smtp.auth", "true" );
         props.put("mail.debug", "true" );
         props.put("mail.smtp.port", porta);
         props.put("mail.smtp.socketFactory.port", porta);
         props.put("mail.smtp.socketFactory.class", ssl_factory);
         props.put("mail.smtp.socketFactory.fallback", "false" );
         
         
         Session session = Session.getDefaultInstance(props,
                 new javax.mail.Authenticator() {
             
             protected PasswordAuthentication getPasswordAuthentication() {
                 StringTokenizer token = new StringTokenizer( emailFrom, "@" );
                 return new PasswordAuthentication(token.nextToken(), senha );
             }
         });
         
         session.setDebug(debug);
         
         Message msg = new MimeMessage(session);
         InternetAddress addressFrom = new InternetAddress(origem);
         msg.setFrom(addressFrom); 
         msg.setSubject(assunto);
         msg.setContent(mensagem, "text/plain" );
         
         Transport.send(msg);
     }
 }

//evento do botão
Email email = new Email();
email.setSenha(“ddffsdfd”);
email.setMsgAssunto(“Solicitação de Reserva”);
email.setMsgFrom("cristianonasciment@gmail.com");
email.setMsgTexto(“Tipo Unidade:”);
email.setRecipients("cristianonasciment@gmail.com");
try{
MandaEmail mandaEmail = new MandaEmail( email );
}catch( Exception e ){
JOptionPane.showMessageDialog(null, e.getMessage() );
}
return null;

[code]

erro: HTTP Status 500 The server encountered an internal error () that prevented it from fulfilling this request.

se alguem puder me dar uma luz, ficarei muitíssimo grato [/code]