Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Code Block
xml
xml
sendmail.war
  + index.jsp
  + WEB-INF
    + web.xml
    + geronimo-web.xml

web.xml:

Code Block
xml
borderStylesolid
titleweb.xml
borderStylesolid
xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
    <display-name>Send Mail Webapp</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <resource-ref>
        <!-- Used in index.jsp -->
        <res-ref-name>mail/testMailSession</res-ref-name>
        <res-type>javax.mail.Session</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>

geronimo-web.xml: This deployable is using Geronimo 2.0's JavaMail component, so it needs to specify where to look. It does this under the <dependencies> tag. As Geronimo changes, these paths need to be changed accordingly to ensure that it refers to the same things. Under the <resource-ref> element, it is referring to a JavaMail session. This is what allows the developer to reference resources that resides on the server. The <ref-name> element is used in the web.xml so the two must be consistent. The <resource-link> element specifies the default Geronimo mail session.

Code Block
xmlborderStylesolid
titlegeronimo-web.xml
borderStylesolid
xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
    <environment>
        <moduleId>
            <groupId>${pom.groupId}</groupId>
            <artifactId>${pom.artifactId}</artifactId>
            <version>${version}</version>
            <type>war</type>
        </moduleId>   
        <dependencies>
            <dependency>
                <groupId>org.apache.geronimo.configs</groupId>
                <artifactId>javamail</artifactId>
                <type>car</type>
            </dependency>
        </dependencies>
    </environment>
    <context-root>/sendmail</context-root>
    <resource-ref>
        <!-- Used is web.xml -->
        <ref-name>mail/testMailSession</ref-name>
        <!-- Default Geronimo mail session -->
        <resource-link>mail/MailSession</resource-link>
    </resource-ref>
</web-app>

index.jsp:

Code Block
xmlborderStylesolid
titleindex.jsp
borderStylesolid
xml
<%@page import="java.util.Date,
                javax.mail.Message,
                javax.mail.Session,
                javax.mail.Transport,
                javax.mail.internet.InternetAddress,
                javax.mail.internet.MimeMessage,
                javax.naming.InitialContext" %>

<%
    String resultMsg = "";
    String action = request.getParameter("action");
    if ("Send".equals(action)) {
        String from = request.getParameter("from");
        String to = request.getParameter("to");
        String subject = request.getParameter("subject");
        String content = request.getParameter("message");

        // Get mail session and transport
        InitialContext context = new InitialContext();
        // Mail session from web.xml's resource reference
        Session mailSession = (Session) context.lookup("java:comp/env/mail/testMailSession");
        Transport transport = mailSession.getTransport("smtp");
    
        // Setup message
        MimeMessage message = new MimeMessage(mailSession);
        // From address
        message.setFrom(new InternetAddress(from));
        // To address
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        // Subject
        message.setSubject(subject);
        // Content
        message.setText(content);
    
        // Send message
        transport.connect();
        transport.send(message);
        
        // Build result message
        resultMsg = "<b>Result:</b>";
        resultMsg += "<br>Message sent: " + new Date();
        resultMsg += "<br>To: " + to;
        resultMsg += "<br>From: " + from;
    }
%>

<html>
    <head>
        <title>Send Mail</title>
    </head>
    <body>
        <form>
            <table>
                <tr>
                    <td align="center" colspan="2"><b>Send Mail</b></td>
                </tr>
                <tr>
                    <td align="right">From:</td>
                    <td><input type="text" name="from"></td>
                </tr>
                <tr>
                    <td align="right">To:</td>
                    <td><input type="text" name="to"></td>
                </tr>
                <tr>
                    <td align="right">Subject:</td>
                    <td><input type="text" name="subject"></td>
                </tr>
                <tr>
                    <td align="right">Message:</td>
                    <td><textarea rows="5" cols="20" name="message"></textarea></td>
                </tr>
                <tr>
                    <td align="right" colspan="2">
                        <input type="submit" name="action" value="Send">&nbsp;<input type="reset"></td>
                    </td>
                </tr>
            </table>
        </form>
        <%= resultMsg %>
    </body>
</html>

...