Enviar email em Java como Eclipse

Properties props = new Properties();
	props.put("mail.smtp.host", "smtp.gmail.com");
	props.put("mail.smtp.socketFactory.port", "465");
	props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
	props.put("mail.smtp.auth", "true");
	props.put("mail.smtp.port", "465");

	Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
		protected PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication("aaaaaaaaaaa", "bbbbbbbbb");
		}
	});

	session.setDebug(true);

	try {

		Message message = new MimeMessage(session);
		message.setFrom(new InternetAddress("xxxxxxxxxx"));
		Address[] toUser = InternetAddress.parse("zzzzzzzzzz");
		message.setRecipients(Message.RecipientType.TO, toUser);
		message.setSubject("Enviando email com JavaMail");
		message.setText("Enviei este email utilizando JavaMail com  a minha conta GMail!");
		Transport.send(message);

		System.out.println("Email enviado com sucesso!!!");

	} catch (MessagingException e) {
		throw new RuntimeException(e);
	}
}

Estou a usar este código para enviar email,será que alguém podia ajudar?Este código da o seguinte erro:
Error: Unable to initialize main class gui.JavaMailApp
Caused by: java.lang.NoClassDefFoundError: javax/mail/MessagingException

Bom dia,
Da uma olhada se ajuda, ok?!


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.fotografias.email;

import br.com.fotografias.transfer.EmailTransfer;
import br.com.fotografias.transfer.PessoaTransfer;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;

/**
 *
 * @author Jandisson
 */
public class ContaClienteUsuarioEmail {

public ContaClienteUsuarioEmail() {

}

private static HtmlEmail mail = new HtmlEmail();
private static final StringBuffer strB = new StringBuffer();
private static final String HOSTNAME = "smtp.gmail.com";
private static final String USERNAME = "teste@gmail.com";
private static final String PASSWORD = "(7==7)!=teste";
private static final String EMAILORIGEM = "teste@gmail.com";
private static String RESPOSTA = "INVALIDO";

public void cadastrarConectadoEmail(PessoaTransfer pessoaTransfer) {

    try {
        //criacao de escrita pré-visualização dos dados
        strB.append("<br></br>");
        strB.append("<h1>Olá,tudo bem ? </h1>");
        strB.append(pessoaTransfer.getNomepessoa().toUpperCase());
        strB.append("<h4>Sua conta foi cadastrada.</h4>");
        strB.append("<h4>Para acesso ao sistema é preciso de:</h4>");
        strB.append("<br></br>");          
        strB.append("<p>Usuário: <b>").append(pessoaTransfer.getUsuariopessoa().toUpperCase()).append("</b> e senha: <b>").append(pessoaTransfer.getSenhapessoa()).append("</b> ;");
        strB.append("<br></br>");
        strB.append("<center><img src=\"http://s3-sa-east-1.amazonaws.com/storage.46graus.com/files/logo/37351/400x180_top_layout2_large_e828bbb3-a9cb-4db5-8cec-f434c8264698.png?93-16\"></center>");
        strB.append("<br></br>");
        strB.append("<center><font size=\"3px\">Por favor, não responda diretamente a este e-mail.</font></center>");
     
        //escreve dados para o envio do email;
        EmailTransfer emailTransfer = new EmailTransfer();
        emailTransfer.setTitulo("USUÁRIO E SENHA DE ACESSO ...");
        emailTransfer.setMensagem(strB.toString());
        emailTransfer.setEmailpessoa(pessoaTransfer.getEmailpessoa().toUpperCase());

        enviarEmail(emailTransfer);

        System.out.println(emailTransfer.getTitulo());
        System.out.println(emailTransfer.getMensagem());
        System.out.println(emailTransfer.getEmailpessoa());

        System.out.println("Resposta = " + RESPOSTA);
    } catch (Exception ex) {
        Logger.getLogger(ContaClienteUsuarioEmail.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public void alterarConectadoEmail(PessoaTransfer pessoaTransfer) {

    try {
        strB.append("<br></br>");
        strB.append("<h1>Olá,tudo bem ? </h1>");
        strB.append(pessoaTransfer.getNomepessoa().toUpperCase());
        strB.append("<br></br>");
        strB.append("<h4>Sua senha foi alterada.</h4>");
        strB.append("<h4>Para acesso ao sistema é preciso de:</h4>");
        strB.append("<p>Usuário: <b>").append(pessoaTransfer.getUsuariopessoa().toUpperCase()).append("</b> e senha: <b>").append(pessoaTransfer.getSenhapessoa()).append("</b> ;");
        strB.append("<br></br>");
        strB.append("<center><img src=\"http://s3-sa-east-1.amazonaws.com/storage.46graus.com/files/logo/37351/400x180_top_layout2_large_e828bbb3-a9cb-4db5-8cec-f434c8264698.png?93-16\"></center>");
        strB.append("<br></br>");
        strB.append("<center><font size=\"3px\">Por favor, não responda diretamente a este e-mail.</font></center>");
        strB.append("<center><font size=\"3px\">Esse e-mail foi enviado de um endereço apenas para notificação que não pode aceitar e-mails de entrada.</font></center>");
       
        //escreve dados para o envio do email;
        EmailTransfer emailTransfer = new EmailTransfer();
        emailTransfer.setTitulo("USUÁRIO E SENHA DE ACESSO ...");
        emailTransfer.setMensagem(strB.toString());
        emailTransfer.setEmailpessoa(pessoaTransfer.getEmailpessoa().toUpperCase());

        enviarEmail(emailTransfer);

    } catch (Exception ex) {
        Logger.getLogger(ContaClienteUsuarioEmail.class.getName()).log(Level.SEVERE, null, ex);
    }
}

private void enviarEmail(EmailTransfer email) throws EmailException, Exception {
    try {
        //abri a conexao de Email
        mail = conectarEmail();
        //escrever informacoes a serem passadas
        mail.setSubject(email.getTitulo());
        mail.setHtmlMsg(email.getMensagem());
        mail.addTo(email.getEmailpessoa());

        RESPOSTA = mail.send();

    } catch (Exception ex) {
        Logger.getLogger(ContaClienteUsuarioEmail.class.getName()).log(Level.SEVERE, null, ex);
    }
}

private HtmlEmail conectarEmail() throws EmailException, Exception {
    try {
        mail.setHostName(HOSTNAME);
        mail.setSmtpPort(587);
        mail.setAuthentication(USERNAME, PASSWORD);
        mail.setTLS(true);

        mail.setFrom(EMAILORIGEM);
        return mail;
    } catch (Exception ex) {
        Logger.getLogger(ContaClienteUsuarioEmail.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

}

Lembrando que ai e para o gmail!!!

Boas! Mas este código utiliza HTML?