Emails con copias cc, bcc
Con múltiples desitinatarios, cc, bcc
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.web;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.jmoordbutils.email.ManagerEmail;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
/**
* Envia correos con copias (cc, bcc y varios destinatarios)
*
* @author avbravo
*/
@Named
@ViewScoped
public class PruebaCCBCC implements Serializable {
String emailemisor = "";
String passwordemailemisor = "";
String[] to = {"unoo@gmail.com", "dos@gmail.com"}; // list of recipient email addresses
String[] cc = {"tres@gmail.com"};
String[] bcc = {"cuatro@gmail.com", "cinco@gmail.com"};
public String getEmailemisor() {
return emailemisor;
}
public void setEmailemisor(String emailemisor) {
this.emailemisor = emailemisor;
}
public String getPasswordemailemisor() {
return passwordemailemisor;
}
public void setPasswordemailemisor(String passwordemailemisor) {
this.passwordemailemisor = passwordemailemisor;
}
public Integer getContadoremail() {
return contadoremail;
}
public void setContadoremail(Integer contadoremail) {
this.contadoremail = contadoremail;
}
ManagerEmail managerEmail = new ManagerEmail();
Integer contadoremail = 0;
public void enviar() {
try {
long start = System.currentTimeMillis();
JsfUtil.successMessage("voy a enviar " + start);
Future<String> completableFuture = calculateAsync();
System.out.println("... mientras se envia, ejecuta las acciones siguientes");
/*
Si se utiliza el esperara que termine.
Cuando no se usa el completableFuture.get(); el programa sigue su curso
y queda en un hilo el envio de emails
*/
// String result = completableFuture.get();
long end = System.currentTimeMillis();
System.out.println("Tiempo estimado: " + (end - start));
} catch (Exception e) {
System.out.println("Error " + e.getLocalizedMessage());
}
}
public Future<String> calculateAsync() throws InterruptedException {
System.out.println("---->calculateAsync()");
contadoremail++;
CompletableFuture<String> completableFuture
= new CompletableFuture<>();
Executors.newCachedThreadPool().submit(new Callable<Object>() {
@Override
public Object call() throws Exception {
System.out.println("........ Voy a enviar el email");
Date date = new Date();
managerEmail.sendOutlook(to, cc, bcc, "{Async}:" + contadoremail, "prueba a " + date.toString(), emailemisor, passwordemailemisor);
System.out.println(".......... Emails enviados con copias: " + Arrays.toString(to) + " cc " + Arrays.toString(cc) + " bcc " + Arrays.toString(bcc));
// Thread.sleep(2500);
completableFuture.complete("Hello");
return null;
}
});
return completableFuture;
}
}
Last updated
Was this helpful?