Envoyer du courrier à plusieurs destinataires en java


Je veux envoyer un message à plusieurs destinataires en utilisant la méthode suivante::

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

OU

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

Mais une confusion est que dans le deuxième argument, Comment passer plusieurs adresses comme :

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

OU

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

Je peux également envoyer un message en utilisant d'autres méthodes, mais je veux connaître le but de la méthode ci-dessus. Si je ne peux pas l'utiliser(car jusqu'à présent, je n'ai pas de réponse à l'exigence ci-dessus), alors quel est le besoin pour que cette méthode soit dans l'API mail.

Author: Prateek, 2012-12-13

10 answers

Si vous invoquez addRecipient plusieurs fois, il ajoutera le destinataire donné à la liste des destinataires de l'heure donnée (TO, CC, BCC)

Par exemple:

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]"));

Ajoutera les 3 adresses à CC


Si vous souhaitez ajouter toutes les adresses à la fois, vous devez utiliser setRecipients ou addRecipients, et de lui fournir un tableau d'adresses de

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

Vous pouvez aussi utiliser InternetAddress.parse pour analyser une liste d'adresses

message.addRecipients(Message.RecipientType.CC, 
                      InternetAddress.parse("[email protected],[email protected],[email protected]"));
 90
Author: Aviram Segal, 2012-12-13 07:04:56

Salut à tous ce code fonctionne pour moi, veuillez essayer avec cela pour envoyer du courrier à plusieurs destinataires

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);
 21
Author: G.K, 2014-04-02 15:15:47

Essayez de cette façon:

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);
 10
Author: user3734721, 2014-06-12 15:53:57

Vous pouvez avoir plusieurs adresses séparées par une virgule

if (cc.indexOf(',') > 0)
    message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));   
else
    message.setRecipient(Message.RecipientType.CC, new InternetAddress(cc));
 9
Author: ThePCWizard, 2016-09-08 11:33:30

Utilisez simplement le message de méthode.setRecipients avec plusieurs adresses séparées par des virgules:

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected],[email protected],[email protected]"));

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

Fonctionne très bien avec une seule adresse aussi

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
 8
Author: Leyo, 2014-11-13 19:18:42

Adresse Internet.Analyser est va être votre ami! Voir l'exemple travaillé ci-dessous:

String to = "[email protected], [email protected], [email protected]";
String toCommaAndSpaces = "[email protected] [email protected], [email protected]";
  1. Analyser une liste d'adresses e-mail séparées par des virgules. Il faut être strict. Nécessite une liste séparée par des virgules.
  2. Si strict est vrai, beaucoup (mais pas toutes) des règles de syntaxe RFC822 pour les e-mails sont appliquées.

    msg.setRecipients(Message.RecipientType.CC,
    InternetAddress.parse(to, true));
    
  3. Analyser la liste séparée par des virgules/espaces. Coupe un peu de mou. Nous autorisons également la liste des espaces séparés, ainsi que les formats de courrier électronique invalides.

    msg.setRecipients(Message.RecipientType.BCC,
    InternetAddress.parse(toCommaAndSpaces, false));
    
 5
Author: Matt, 2014-08-14 15:57:45

Donc ... cela a pris plusieurs mois, mais quand même ... Vous pouvez envoyer des e-mails à plusieurs destinataires en utilisant le', ' comme séparateur et

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

Est ok. Au moins dans JavaMail 1.4.5

 4
Author: bes67, 2013-07-03 16:05:29
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]; 
 4
Author: user2389095, 2015-07-25 06:05:27

Vous pouvez utiliser n-nombre de bénéficiaires méthode ci-dessous:

  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);
 1
Author: Dhinakar, 2013-11-06 16:12:30

Si vous voulez envoyer en Cc en utilisant MimeMessageHelper

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

Même vous pouvez utiliser pour ajouter plusieurs destinataires.

 1
Author: Arun, 2014-11-03 08:04:52