use of com.sun.enterprise.deployment.MailConfiguration in project Payara by payara.
the class MailResourceDeployer method installMailResource.
/**
* Installs the given mail resource. This method gets called during server
* initialization and from mail resource deployer to handle resource events.
*
* @param mailResource mail resource
* @param resourceInfo
*/
public void installMailResource(MailBean mailResource, ResourceInfo resourceInfo) {
try {
MailConfiguration config = new MailConfiguration(mailResource);
javax.naming.Reference ref = new javax.naming.Reference(javax.mail.Session.class.getName(), MailNamingObjectFactory.class.getName(), null);
SerializableObjectRefAddr serializableRefAddr = new SerializableObjectRefAddr("jndiName", config);
ref.add(serializableRefAddr);
// Publish the object
namingService.publishObject(resourceInfo, ref, true);
} catch (Exception ex) {
_logger.log(Level.SEVERE, "mailrsrc.create_obj_error", resourceInfo);
_logger.log(Level.SEVERE, "mailrsrc.create_obj_error_excp", ex);
}
}
use of com.sun.enterprise.deployment.MailConfiguration in project Payara by payara.
the class MailNamingObjectFactory method getObjectInstance.
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception {
Reference ref = (Reference) obj;
if (_logger.isLoggable(Level.FINE)) {
_logger.log(Level.FINE, "MailNamingObjectFactory: " + ref + " Name:" + name);
}
MailConfiguration config = (MailConfiguration) ref.get(0).getContent();
// Note: javax.mail.Session is not serializable,
// but we need to get a new instance on every lookup.
Properties props = config.getMailProperties();
javax.mail.Session s = javax.mail.Session.getInstance(props, new MailSessionAuthenticator(props));
if ("smtps".equals(props.getProperty("mail.transport.protocol"))) {
s.setProtocolForAddress("rfc822", "smtps");
}
s.setDebugOut(new PrintStream(new MailLogOutputStream()));
s.setDebug(true);
return s;
}
Aggregations