Home | Download | PDF | API | FAQ | Search | Feedback | History

> ## The confirmer Example Application

> The `confirmer` example application demonstrates how to use an injected JavaMail session to send a confirmation email.

> If you've ever ordered a product from a web site, you've probably received an email confirming your order. The `ConfirmerBean` class demonstrates how to send email from an enterprise bean.

> Like a database connection, a mail session is a resource. In the Application Server, a mail session is called a JavaMail resource. The resource is injected into the class using `@Resource` and specifying the JNDI name of the resource. The type of the `session` field is `javax.mail.Session`.

>     @Resource(name="mail/myMailSession")
>     private Session session;

> After calling several `set` methods on the `Message` object, `sendNotice` invokes the `send` method of the `javax.mail.Transport` class to send the message. The source code for the `sendNotice` method follows.

>     public void sendNotice(String recipient) {
>       try {
>         Message message = new MimeMessage(session);
>         message.setFrom();
>         message.setRecipients(Message.RecipientType.TO,
>             InternetAddress.parse(recipient, false));
>         message.setSubject("Test Message from ConfirmerBean");
>         DateFormat dateFormatter = DateFormat
>             .getDateTimeInstance(DateFormat.LONG,
>             DateFormat.SHORT);
>         Date timeStamp = new Date();

>         String messageText = "Thank you for your order." + '\n'
>             + "We received your order on "
>             + dateFormatter.format(timeStamp) + ".";
>         message.setText(messageText);

>         message.setHeader("X-Mailer", mailer);
>         message.setSentDate(timeStamp);

>         // Send message
>         Transport.send(message);
>         logger.info("Mail sent to " + recipient + ".");
>       } catch (MessagingException ex) {
>         ex.printStackTrace();
>         logger.info("Error in ConfirmerBean for " + recipient);
>       }
>     }

> ### Running the confirmer Example Application

> In order run the `confirmer` example, you must:

> 1. Create a mail session in the Admin Console.
> 2. Compile the example.
> 3. Deploy the example.
> 4. Retrieve the client JAR.
> 5. Run the client JAR.

> #### Creating a Mail Session

> To create a mail session in the Application Server using the Admin Console, follow these steps:

> 1. Open the URL `http://localhost:4848/asadmin` in a browser.
> 2. Select the JavaMail Sessions node.
> 3. Click New.
> 4. Type `mail/myMailSession` in the JNDI Name field.
> 5. Type the name of the host running your mail server in the Mail Host field.
> 6. Type the destination email address in the Default User field.
> 7. Type your email address in the Default Return Address field.
> 8. Click OK.
> 9. Note that `mail/myMailSession` is listed under the JavaMail Sessions node.

> #### Compiling confirmer

> To compile the confirmer example, do the following.

> 1. In a terminal go to `<``INSTALL``>/examples/ejb/confirmer`.
> 2. Enter the following command:

> `ant`

> This compiles the source code and creates a EAR file, `confirmer,ear`, in the `dist` directory.

> #### Deploying confimer.ear

> To depoy `confirmer.ear`, enter the following command in a terminal:

>     ant deploy

> #### Running the Client

> By default, the client sends a message to `pig.bodine@example.com`, a fictional email address. To change the email address, set the `app-client.args` property in `<``INSTALL``>/examples/ejb/confirmer/nbproject/project.properties` to the email address to which you'd like the test message sent. For example:

>     app-client.args=duke@example.com

> To retrieve the client JAR and run the client, enter the following command in a terminal:

>     ant run

> You should see the following line when the client has successfully sent the test message:

>     [exec] Message sent to pig.bodine@example.com.

> If you changed the target email address, the test message should arrive in the user's inbox in a few moments.