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.
Cómo enviar mail de Zimbra desde un aplicativo
Re: Cómo enviar mail de Zimbra desde un aplicativo
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;
}
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;
}