propiedades java javamail javax.mail

propiedades - Enviar correo a mĂșltiples destinatarios en java



textarea java netbeans (10)

Quiero enviar un mensaje a múltiples destinatarios utilizando el siguiente método:

message.addRecipient(Message.RecipientType.TO, String arg1);

O

message.setRecipients(Message.RecipientType.TO,String arg1);

Pero una confusión es que en el Segundo argumento, Cómo pasar múltiples direcciones como:

message.addRecipient(Message.RecipientType.CC, "[email protected],[email protected],[email protected]");

O

message.addRecipient(Message.RecipientType.CC, "[email protected];[email protected];[email protected]");

También puedo enviar mensajes usando métodos alternativos, pero quiero saber el propósito del método anterior. Si no puedo usarlo (como hasta ahora no tengo ninguna respuesta para el requisito anterior), ¿cuál es la necesidad de que este método esté en la API de correo?


Así que ... tardaron muchos meses, pero aún así ... Puede enviar un correo electrónico a varios destinatarios utilizando '','' como separador y

message.setRecipients(Message.RecipientType.CC, "[email protected],[email protected],[email protected]");

esta bien Al menos en JavaMail 1.4.5


Hola a todos, este código funciona para mí, por favor, intente esto para enviar correo a múltiples destinatarios.

private String recipient = "[email protected] ,[email protected] "; String[] recipientList = recipient.split(","); InternetAddress[] recipientAddress = new InternetAddress[recipientList.length]; int counter = 0; for (String recipient : recipientList) { recipientAddress[counter] = new InternetAddress(recipient.trim()); counter++; } message.setRecipients(Message.RecipientType.TO, recipientAddress);


Intente de esta manera:

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); String address = "[email protected],[email protected]"; InternetAddress[] iAdressArray = InternetAddress.parse(address); message.setRecipients(Message.RecipientType.CC, iAdressArray);


InternetAddress.Parse será tu amigo! Vea el ejemplo trabajado abajo:

String to = "[email protected], [email protected], [email protected]"; String toCommaAndSpaces = "[email protected] [email protected], [email protected]";

  1. Analizar una lista de direcciones de correo electrónico separadas por comas. Ser estricto. Requiere lista separada por comas.
  2. Si estricto es cierto, se aplican muchas (pero no todas) las reglas de sintaxis de RFC822 para correos electrónicos.

    msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, true));

  3. Analizar coma / lista separada por espacios. Cortar un poco de holgura. También permitimos espacios separados en la lista, además de formatos de correo electrónico no válidos.

    msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(toCommaAndSpaces, false));


Puedes tener varias direcciones separadas por comas

if (cc.indexOf('','') > 0) message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc)); else message.setRecipient(Message.RecipientType.CC, new InternetAddress(cc));


Puedes usar el número n de destinatario debajo del método:

String to[] = {"[email protected]"} //Mail id you want to send; InternetAddress[] address = new InternetAddress[to.length]; for(int i =0; i< to.length; i++) { address[i] = new InternetAddress(to[i]); } msg.setRecipients(Message.RecipientType.TO, address);


Si desea enviar como Cc utilizando MimeMessageHelper

List<String> emails= new ArrayList(); email.add("email1"); email.add("email2"); for (String string : emails) { message.addCc(string); }

Lo mismo puedes usar para agregar varios destinatarios.


Si invoca addRecipient varias veces, agregará el destinatario dado a la lista de destinatarios de la hora dada (TO, CC, BCC)

Por ejemplo:

message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("[email protected]")); message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("[email protected]")); message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("[email protected]"));

Agregará las 3 direcciones a CC

Si desea agregar todas las direcciones a la vez, debe usar setRecipients o addRecipients y proporcionarle un conjunto de direcciones

Address[] cc = new Address[] {InternetAddress.parse("[email protected]"), InternetAddress.parse("[email protected]"), InternetAddress.parse("[email protected]")}; message.addRecipients(Message.RecipientType.CC, cc);

También puede usar InternetAddress.parse para analizar una lista de direcciones

message.addRecipients(Message.RecipientType.CC, InternetAddress.parse("[email protected],[email protected],[email protected]"));



String[] mailAddressTo = new String[3]; mailAddressTo[0] = emailId_1; mailAddressTo[1] = emailId_2; mailAddressTo[2] = "[email protected]"; InternetAddress[] mailAddress_TO = new InternetAddress[mailAddressTo.length]; for (int i = 0; i < mailAddressTo.length; i++) { mailAddress_TO[i] = new InternetAddress(mailAddressTo[i]); } message.addRecipients(Message.RecipientType.TO, mailAddress_TO);ress_TO = new InternetAddress[mailAddressTo.length];