Cómo enviar mail de Zimbra desde un aplicativo

Post Reply
linitao
Posts: 10
Joined: Wed May 23, 2018 2:10 pm

Cómo enviar mail de Zimbra desde un aplicativo

Post by linitao »

Hola a todos,

Alguien sabe el código para que desde un aplicativo enviar mails a cuentas externas, ej. hotmail, de cuentas registradas en Zimbra?

Así mismo para que las cuentas de los usuarios de Zimbra reciban mail, cuyo cuerpo del mensaje fue creado desde un aplicativo?

Muchas gracias de antemano por su ayuda y amable atención.
linitao
Posts: 10
Joined: Wed May 23, 2018 2:10 pm

Re: Cómo enviar mail de Zimbra desde un aplicativo

Post by linitao »

A continuación código, por si alguien necesita:

public boolean sendData(MailInfoVO mailSndVO) throws Exception
{
boolean retVale = false;
String GetEmailSndEmailAddr = mailSndVO.getEm().toLowerCase(); //direcciones email destino
//String GetEmailSndEmailAddr = "cchele@hotmail.com, moni@gmail.com, nancyjm@yahoo.com";
String GetEmailSndEmailAddrCC = ""; //direcciones email copiados
String GetEmailSndEmailAddrCCO = ""; //direcciones email copiados oculta
String GetGetEmailSndEmailTitleCntn = mailSndVO.getEm_sj(); //asunto del correo
String GetGetEmailSndEmailCntn = mailSndVO.getEm_cn(); //contenido del correo
String arroba = _para1VO.getPara_val_cn().toString().toLowerCase();

final String em = "admin@localdomain.com"; //quien envia
final String passwordEm = "123456"; //password de quien envia

String d_host = "192.168.248.129";
String d_port = "25"; //587 25
String d_trust = "smtp.midominio.com";

FlexContext.getHttpRequest().getSession().setAttribute(_propertiesService.getString("d_host"), d_host);
FlexContext.getHttpRequest().getSession().setAttribute(_propertiesService.getString("d_port"), d_port);
FlexContext.getHttpRequest().getSession().setAttribute(_propertiesService.getString("d_trust"), d_trust);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* PARA QUE PUEDA ACCEDER AL LINK HTTPS
*/

Properties config = new Properties();

URL url = this.getClass().getResource("/wsaa/properties/wsaa_client.properties"); //archivo donde esta la clave del truststore.jks
URL urlJKS = this.getClass().getResource("/wsaa/certs/truststore.jks");

config.load(new FileInputStream(url.getPath()));

String keyStorePath = config.getProperty("trustStore",""); //nombre que esta en el archivo wsaa_client.properties hace referencia a la ruta donde esta el truststore.jks
String keyStorePass = config.getProperty("trustStore_password"); //nombre que esta en el archivo wsaa_client.properties hace referencia al password del truststore.jks

keyStorePath = urlJKS.getPath();

System.getProperties().put("javax.net.ssl.trustStore", keyStorePath);
System.getProperties().put("javax.net.ssl.trustStorePassword",keyStorePass);
System.getProperties().put("javax.net.ssl.trustStoreType", "JKS");

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Properties props = new Properties ();
props.put ("mail.smtp.user", em);
props.put ("mail.smtp.host", d_host);
props.put ("mail.smtp.port", d_port);
props.put ("mail.smtp.starttls.enable", "true");
props.put ("mail.smtp.auth", "true");
//props.put("mail.smtp.debug "," true ");
props.put ("mail.smtp.socketFactory.port", d_port);
props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put ("mail.smtp.socketFactory.fallback", "falso");
props.put ("mail.smtp.ssl.trust", d_trust);

SecurityManager security = System.getSecurityManager ();

try {
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(em, passwordEm);
}
});

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(em));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(GetEmailSndEmailAddr));
message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(GetEmailSndEmailAddrCC));
message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(GetEmailSndEmailAddrCCO));

message.setSubject(GetGetEmailSndEmailTitleCntn);
//message.setText(GetGetEmailSndEmailCntn); //solo texto
message.setContent(GetGetEmailSndEmailCntn, "text/html; charset=utf-8"); //formato texto y html
Transport.send(message);
System.out.println("Se envio correo");
retVale = true;

}catch (Exception mex) {
mex.printStackTrace ();
retVale = false;
}

return retVale;
}
Post Reply