Hola estoy intentando enviar correos con javamail pero recibo la siguiente excepcion:
java.lang.SecurityException: Access to default session denied
javax.mail.Session.getDefaultInstance(Session.java :311)...
el codigo que utilizo es el siguiente
Código:
public void sendMail(MessageMail mensaje){
EntityManager em = PersistenceManager.getInstance().getEntityManagerFactory().createEntityManager();
Properties props = new Properties();
if(mensaje.getHelpdesk().isPopAntesSMTP()){
try{
props.put("mail.pop3.host", mensaje.getHelpdesk().getPopHost());
Session sessionPop = Session.getDefaultInstance(props, null);
Store store= sessionPop.getStore("pop3");
store.connect(mensaje.getHelpdesk().getPopHost(), mensaje.getHelpdesk().getUsrPOP(), mensaje.getHelpdesk().getPassPOP());
Folder folder= store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
folder.close(false);
store.close();
}catch (Exception e){
e.printStackTrace();
}
}
try{
props.put("mail.smtp.host", mensaje.getHelpdesk().getSmtpHost());
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.user", mensaje.getHelpdesk().getUsrSMTP());
props.setProperty("mail.smtp.auth", "true");
SMTPAuthenticator auth = null;
if(mensaje.getHelpdesk().isRequiereAtutentificacionSMTP()){
auth = new SMTPAuthenticator(mensaje.getHelpdesk().getUsrSMTP(), mensaje.getHelpdesk().getPassSMTP());
}
Session session = Session.getDefaultInstance(props, auth);
BodyPart texto = new MimeBodyPart();
texto.setText(mensaje.getDscMail());
MimeMultipart multiParte = new MimeMultipart();
multiParte.addBodyPart(texto);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(mensaje.getHelpdesk().getEmail(), mensaje.getHelpdesk().getNombre()));
message.setSubject(mensaje.getSubMail());
message.setContent(multiParte);
message.setSentDate(mensaje.getHelpdesk().newDate());
if(!mensaje.getDestinatarios().isEmpty()){
for(DestinatarioMessage des : mensaje.getDestinatarios()){
message.addRecipients(Message.RecipientType.BCC, des.getEmailDestinatario());
}
}
Transport t = session.getTransport("smtp");
t.connect(mensaje.getHelpdesk().getSmtpHost(),mensaje.getHelpdesk().getUsrSMTP(), mensaje.getHelpdesk().getPassSMTP());
if(message.getAllRecipients()!=null && message.getAllRecipients().length!=0){
t.sendMessage(message, message.getAllRecipients());
}
t.close();
em.getTransaction().begin();
mensaje.setEnviado(true);
mensaje.setFechaEnviado(mensaje.getHelpdesk().newDate());
messageController.updateMessage(mensaje, em);
em.getTransaction().commit();
}catch (Exception e){
String error=e.toString();
StackTraceElement[] pila = e.getStackTrace();
for(int i=0;i<pila.length;i++){
error+= "\n" + pila[i].toString();
}
e.printStackTrace();
em.getTransaction().begin();
mensaje.setReintentoEnviado(mensaje.getReintentoEnviado() + 1);
mensaje.setEnviado(false);
mensaje.setServerStatus(error);
messageController.updateMessage(mensaje, em);
em.getTransaction().commit();
}
em.close();
}
alguien sabe que puede estar pasando?
saludos y gracias