Internet E-mail address format (RFC 822):
(,)comma separated sequence of addresses
javax.mail - 1.4.7 parse(String[]) is not allowed. So we have to give a comma-separated sequence of addresses into InternetAddress objects. Addresses must follow the RFC822 syntax.
String toAddress = "mail@mail.example,mail2@mail.example";
InternetAddress.parse(toAddress);
(;) semi-colon separated sequence of addresses «
If a group of address list is provided with delimiter as ";", then convert to a string array using the split method to use the following function.
String[] addressList = { "mail@mail.example", "mail2@mail.example" };
String toGroup = "mail@mail.example;mail2@mail.example";
String[] addressList2 = toGroup.split(";");
setRecipients(message, addressList);
public static void setRecipients(Message message, Object addresslist) throws AddressException, MessagingException {
    if (addresslist instanceof String) { // CharSequence
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse((String) addresslist));
    } else if (addresslist instanceof String[]) { // String[] « Array with collection of Strings/
        String[] toAddressList = (String[]) addresslist;
        InternetAddress[] mailAddress_TO = new InternetAddress[ toAddressList.length ];
        for (int i = 0; i < toAddressList.length; i++) {
            mailAddress_TO[i] = new InternetAddress(toAddressList[i]);
        }
        message.setRecipients(Message.RecipientType.TO, mailAddress_TO);
    }
}
Full example
public static Properties getMailProperties(boolean addExteraProps) {
    Properties props = new Properties();
    props.put("mail.transport.protocol", MAIL_TRNSPORT_PROTOCOL);
    props.put("mail.smtp.host", MAIL_SERVER_NAME);
    props.put("mail.smtp.port", MAIL_PORT);
    // Sending Email to the GMail SMTP server requires authentication and SSL.
    props.put("mail.smtp.auth", true);
    if(ENCRYPTION_METHOD.equals("STARTTLS")) {
        props.put("mail.smtp.starttls.enable", true);
        props.put("mail.smtp.socketFactory.port", SMTP_STARTTLS_PORT); // 587
    } else {
        props.put("mail.smtps.ssl.enable", true);
        props.put("mail.smtp.socketFactory.port", SMTP_SSL_PORT); // 465
    }
    props.put("mail.smtp.socketFactory", SOCKETFACTORY_CLASS);
    return props;
}
public static boolean sendMail(String subject, String contentType, String msg, Object recipients) throws Exception {
    Properties props = getMailProperties(false);
    Session mailSession = Session.getInstance(props, null);
    mailSession.setDebug(true);
    Message message = new MimeMessage(mailSession);
    message.setFrom(new InternetAddress(USER_NAME));
    setRecipients(message, recipients);
    message.setSubject(subject);
    String htmlData = "<h1>This is actual message embedded in HTML tags</h1>";
    message.setContent(htmlData, "text/html");
    Transport transport = mailSession.getTransport(MAIL_TRNSPORT_PROTOCOL);
    transport.connect(MAIL_SERVER_NAME, Integer.valueOf(MAIL_PORT), USER_NAME, PASSWORD);
    message.saveChanges(); // Don't forget this
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
}
Using Appache SimpleEmail - commons-email-1.3.1
Example: email.addTo(addressList);
public static void sendSimpleMail() throws Exception {
    Email email = new SimpleEmail();
    email.setSmtpPort(587);
    DefaultAuthenticator defaultAuthenticator = new DefaultAuthenticator(USER_NAME, PASSWORD);
    email.setAuthenticator(defaultAuthenticator);
    email.setDebug(false);
    email.setHostName(MAIL_SERVER_NAME);
    email.setFrom(USER_NAME);
    email.setSubject("Hi");
    email.setMsg("This is a test mail... :-)");
    //email.addTo("mail@mail.example", "Yash");
    String[] toAddressList = { "mail@mail.example", "mail2@mail.example" }
    email.addTo(addressList);
    email.setTLS(true);
    email.setStartTLSEnabled(true);
    email.send();
    System.out.println("Mail sent!");
}