JavaEE : "Access to default session denied" when sending mail using smtp.gmail.com
Posted
by
Harry Pham
on Stack Overflow
See other posts from Stack Overflow
or by Harry Pham
Published on 2010-12-28T05:48:37Z
Indexed on
2010/12/28
5:53 UTC
Read the original article
Hit count: 362
I am trying to write email authentication feature for my website and I encounter some issues. I got java.lang.SecurityException: Access to default session denied
, when I try to do Session.getDefaultInstance
. Here are my codes:
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String emailSubjectTxt = "Email Confirmation";
private static final String emailFromAddress = "[email protected]";
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
...
String sendTo = "[email protected]";
boolean debug = true;
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");
//It dies at the next line
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myUserName", "myPassword");
}
});
session.setDebug(debug);
//Set the FROM address
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(emailFromAddress);
msg.setFrom(addressFrom);
//Set the TO address
InternetAddress[] addressTo = new InternetAddress[1];
addressTo[0] = new InternetAddress(sendTo);
msg.setRecipients(Message.RecipientType.TO, addressTo);
//Construct the content of the email confirmation
String message = "Test Content"
// Setting the Subject and Content Type
msg.setSubject(emailSubjectTxt);
msg.setContent(message, "text/plain");
Transport.send(msg);
© Stack Overflow or respective owner