Enviar correo en copia oculta con JavaMail

12/Dic/2006 Java , , , , , , 8 Comentarios

Una de las cosas que podemos hacer al enviar un correo es poner un email en copia oculta. Esto significa que la persona a la que pongamos en copia oculta recibirá el email sin que el resto de personas que van en el email sepan de tal hecho. Veremos que esto es muy sencillo de programar con JavaMail.

Esto suele ser de gran utilidad para avisar a alguien del contenido de un email. Por ejemplo, en las empresas una práctica muy habitual es copiar a tu jefe/a en copia oculta para que sea consciente de lo que se estás enviando. También se puede utilizar para validar que se ha enviado y en este caso, se suele poner uno mismo en copia oculta. Vamos, que las aplicaciones son de lo más variopintas.

Si queremos implementar este comportamiento con JavaMail lo primero que debemos de aprender es a Mandar emails con JavaMail. Para lo que os recomiendo encarecidamente la lectura de dicho artículo.

Y es que cuando estamos configurando los campos del mensaje lo primero que hacemos es instanciar una clase Message.

  1. Message msg = new MimeMessage(mailSession);

Y sobre dicho mensaje configuraremos los campos TO, CC y BCC. Para ello nos apoyaremos en el método .addRecipients, el cual recibe 2 parámetros: el tipo de recipiente y la lista de emails de dicho tipo de recipiente. Esta lista de direcciones viene representada por un arry de InternetAdress[].

Para resolver nuestro problema solo deberemos de jugar con el tipo de recipiente y utilizar el tipo BCC. Este es el acrónimo de "blind carbon copy". O lo que nosotros denominamos copia oculta.

Es por ello que nuestra línea de código quedaría de la siguiente forma:

  1. msg.addRecipients(Message.RecipientType.BCC, new InternetAddress[] { new InternetAddress("miamigo_oculto@gmail.com") });

El resto del código para enviar el email lo puedes encontrar en Mandar emails con JavaMail.

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

8 comentarios en “Enviar correo en copia oculta con JavaMail”

Víctor Cuervo

Mauro

Ahora si va el código, creo que no se ve bien jejejeje

Address[] addresses = InternetAddress.parse(correosAEnviar());

System.out.println(“Correo BCC: “+correosAEnviarBCC());
Message message = new MimeMessage(session);

message.setFrom(new InternetAddress(username));

message.setRecipients(Message.RecipientType.TO, addresses);
message.addRecipients(Message.RecipientType.BCC, new InternetAddress[] { new InternetAddress(correosAEnviarBCC())});

System.out.println(“Recipientes:”);
Address[] direcciones = message.getAllRecipients();
for(int i = 0; i < direcciones.length;i++){
Address direccion = direcciones[i];
System.out.println(direccion.toString()+"/"+direccion.getType());
}

Víctor Cuervo

Mauro

Holaaaaaaaaaa, saben que estoy teniendo problemas, se me estan enviando los correos pero no estan llegando al destinatario con copia oculta, que puede ser???

Adjunto extracto de código


Address[] addresses = InternetAddress.parse(correosAEnviar());

System.out.println("Correo BCC: "+correosAEnviarBCC());
Message message = new MimeMessage(session);

message.setFrom(new InternetAddress(username));

message.setRecipients(Message.RecipientType.TO, addresses);
message.addRecipients(Message.RecipientType.BCC, new InternetAddress[] { new InternetAddress(correosAEnviarBCC())});

System.out.println("Recipientes:");
Address[] direcciones = message.getAllRecipients();
for(int i = 0; i < direcciones.length;i++){
Address direccion = direcciones[i];
System.out.println(direccion.toString()+"/"+direccion.getType());
}

Correo BCC: 2.xxxxxxx@lan.com
Recipientes:
1.xxxxxxx@lan.com/rfc822
2.xxxxxxx@lan.com/rfc822 (oculta)

Víctor Cuervo

cony

holaaa!! muy bueno y muy rapido solo le cambias a BCC y ya no se ven los correos!!!
graaacias
mira y no sabes como hacer para desactivar el reply de los correos ??

Víctor Cuervo

Johan C.

Como puedo hacer que dentro de un mismo correo se envíen a una dirección normal, otra con copia y otra direccion con copia oculta.

Víctor Cuervo

daniel

hola

Víctor Cuervo

Kelvin

No no me funciona. Intente de nuevo, yo me conecto bajo plataforma GNU/Linux, con debian o ubuntu, de todas manetas intentaré en otros lugares para ver si es problema de mi computadora. Gracias por su atención.

Víctor Cuervo

lineadecodigo

Hola Kelvin,

Parece que si que funciona el enlace de Enviar emails con JavaMail.

Si no puedes acceder vuelve a poner un comentario y te hago llegar la información a tu correo electrónico.

Víctor Cuervo

Kelvin

He tenido problemas para conectarme a “Mandar emails con JavaMail” no se si en el momento la pagina no esta disponible pero la verdad me interesa mucho esa informacion… Que puedo hacer?… Gracias de antemano

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*