Operating Systems: i5/OS
Personalize the table of contents and search results
Use mail
You can enable your J2EE applications to use mail resources with
the JavaMail API.
Using the JavaMail API, a code segment can be embedded in any Java
2 Enterprise Edition (J2EE) application component, such as an EJB or a servlet,
allowing the application to send a message and save a copy of the mail to
the Sent folder.The following is a code sample that you would embed in
a J2EE application:
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3");
MimeMessage msg = new MimeMessage(mail_session);
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("bob@coldmail.net"));
msg.setFrom(new InternetAddress("alice@mail.eedge.com"));
msg.setSubject("Important message from eEdge.com");
msg.setText(msg_text);
Transport.send(msg);
Store store = mail_session.getStore();
store.connect();
Folder f = store.getFolder("Sent");
if (!f.exists()) f.create(Folder.HOLDS_MESSAGES);
f.appendMessages(new Message[] {msg});
Overview
J2EE applications can use JavaMail APIs by looking up references
to logically named mail connection factories through the java:comp/env/mail subcontext
that is declared in the application deployment descriptor and mapped to installation
specific mail session resources. As in the case of other J2EE resources, this
can be done in order to eliminate the need for the application to hard code
references to external resources.
Procedure
- Locate a resource
through Java Naming and Directory Interface (JNDI). The
J2EE specification considers a mail session instance as a resource, or a factory
from which mail transport and store connections can be obtained. Do not hard
code mail sessions (namely, fill up a Properties object, then use it to create
a javax.mail.Session object). Instead, follow the J2EE programming
model of configuring resources through the system facilities and then locating
them through JNDI lookups.
In the previous sample code, the line javax.mail.Session
mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3"); is
an example of not hard coding a mail session and using a resource name located
through JNDI. You can consider the lookup name, mail/MailSession3,
as a soft link to the real resource.
- Define resource references
while assembling your application. You must define a resource
reference for the mail resource in the deployment descriptor of the component,
because a mail session is referenced in the JNDI lookup. Typically, you can
use an assembly tool shipped
with WebSphere Application Server.When you create this reference, be sure
that the name of the reference matches the name used in the code. For example,
the previous code uses java:comp/env/mail/MailSession3 in its lookup.
Therefore the name of this reference must be mail/Session3, and the
type of the resource must be javax.mail.Session. After configuration,
the deployment descriptor contains the following entry for the mail resource
reference:
<resource-reference>
<description>description</description>
<res-ref-name>mail/MailSession3</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
- Configure mail providers
and sessions. The sample code references a mail resource,
the deployment descriptor declares the reference, but the resource itself
does not exist yet. Now you need to configure the mail resource that is referenced
by your application component. Notice that the mail session you configure
must have both its transport and mail access portions defined; the former
required because the code is sending a message, the latter because it also
saves a copy to the local mail store. When you configure the mail session,
you need to specify a JNDI name. This is an important name for installing
your application and linking up the resource references in your application
with the real resources that you configure.
- Install your application.
You can install your application using either the administrative console
or the scripting tool. During installation, WebSphere Application Server inspects
all resource references and requires you to supply a JNDI name for each of
them. This is not an arbitrary JNDI name, but the JNDI name given to a particular,
configured resource that is the target of the reference.
- Manage existing mail providers and sessions. You can
update and remove mail providers and sessions.
To update mail providers
and sessions:
- Open the administrative console.
- Click Resources > Mail in the console navigation
tree.
- Select the appropriate Java Mail resource to modify by clicking
either Mail Providers or Mail Sessions.
- Select the specific resource to modify. To remove
a mail provider or mail session, select the check box next to the appropriate
resource and click Delete.
- Click Apply or OK.
- Save the configuration.
- Enable debugger for a
mail session.
What to do next
If your application has a client, you can update mail providers and
mail sessions using the Application
Client Resource Configuration Tool (ACRCT).
}
Configuring mail providers and sessions
Enabling debugger for a mail session
JavaMail API
Mail providers and mail sessions
JavaMail security permissions best practices
Mail: Resources for learning
JavaMail support for IPv6
Related tasks
Developing applications that use JNDI
Assembling applications
Installing application files with the console
Monitoring overall system health
|