
package enviomail;

import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class EnvioMail {

    public static void main(String[] args) {
        
        final String SERVIDORCORREO = "smtp. SERVIDORCORREO.com";
        final String CUENTAREMITENTE = "la.cuenta.remitente@servidorremitente.com";
        final String PASSWORDREMITENTE = "passwordremitente";
        final String CUENTADESTINATARIA1 = "la.cuenta.destinataria1@servidordestinatario1.com";
        final String CUENTADESTINATARIA2 = "la.cuenta.destinataria2@servidordestinatario2.com";
        final String CUENTADESTINATARIA3 = "la.cuenta.destinataria3@servidordestinatario3.com";

        
     try
        {
            Properties properties = new Properties();
         
            properties.setProperty("mail.smtp.host", SERVIDORCORREO);
            properties.setProperty("mail.smtp.starttls.enable", "true");
            properties.setProperty("mail.smtp.port", "465");                                            
            properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
            properties.setProperty("mail.smtp.user", CUENTAREMITENTE);                                 // remitente
            properties.setProperty("mail.smtp.auth", "true");

            Session session = Session.getDefaultInstance(properties);

            MimeMessage mensaje = new MimeMessage(session); 
            mensaje.setFrom(new InternetAddress(CUENTAREMITENTE));                             // remitente
    
            //  mensaje.addRecipient(Message.RecipientType.TO,new InternetAddress(CUENTADESTINATARIA1));  // un solo destinatario
            Address[] direcciones = {new InternetAddress(CUENTADESTINATARIA1), new InternetAddress(CUENTADESTINATARIA2), new InternetAddress(CUENTADESTINATARIA3)}; // varios destinatarios
            mensaje.addRecipients(Message.RecipientType.CC, direcciones);
            
            mensaje.setSubject("Asunto del correo");
            
            BodyPart textoPart = new MimeBodyPart();
            textoPart.setText("Esta cadena representa el texto del correo");

            MimeMultipart mimeMultipart= new MimeMultipart();
            mimeMultipart.addBodyPart(textoPart);
            mensaje.setContent(mimeMultipart);            
          
            Transport transport = session.getTransport("smtp");
                                                //   remitente                // password
            transport.connect(SERVIDORCORREO, CUENTAREMITENTE, PASSWORDREMITENTE);
            transport.sendMessage(mensaje, mensaje.getAllRecipients());

            transport.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }        
    } 
}
