Send An Email Using A Bean

CK CK 3788 
Created at
Updated at  
1,016 0 0

This JSP snippets shows how to send an email using a reuasable javabean

<!-- SendMail.jsp -->
<HTML>
  <HEAD>

  <TITLE>JSP Sample - Send Email</TITLE>
  </HEAD>
  <BODY background="../../images/Background.gif">
  <CENTER>
  <BR>
  <%--
    Prepare the inputs and call the bean method to send the
    mail using the API

  --%>
  <jsp:useBean id="sendMail" class="SendMailBean" scope="page" />
  <%
    String l_from    = request.getParameter("p_from");
    String l_to      = request.getParameter("p_to");
    String l_cc      = request.getParameter("p_cc");
    String l_bcc     = request.getParameter("p_bcc");
    String l_subject = request.getParameter("p_subject");
    String l_message = request.getParameter("p_message");

    String l_smtpSvr = request.getParameter("p_smtpServer");
    session.setAttribute("smtpServer",l_smtpSvr);
    String l_result  = sendMail.send(l_from,l_to,l_cc,l_bcc,l_subject,l_message,l_smtpSvr);
  %>
  <%= l_result %>
  <FONT SIZE=3 COLOR="blue">
  <A HREF="InputsForm.jsp">Compose Mail</A>
  </CENTER>
  </BODY>
</HTML>


SendMailBean.java


import javax.mail.*;          //JavaMail packages
import javax.mail.internet.*; //JavaMail Internet packages
import java.util.*;           //Java Util packages

public class SendMailBean {


  public String send(String p_from,String p_to,String p_cc,String p_bcc,String p_subject,String p_message,String p_smtpServer) {
    String l_result = "<BR><BR><BR><BR><BR><BR><BR>";
    // Name of the Host machine where the SMTP server is running
    String l_host = p_smtpServer;

    // Gets the System properties
    Properties l_props = System.getProperties();


    // Puts the SMTP server name to properties object
    l_props.put("mail.smtp.host",l_host);

    // Get the default Session using Properties Object
    Session l_session = Session.getDefaultInstance(l_props,null);

    l_session.setDebug(true); // Enable the debug mode

    try {
      MimeMessage l_msg = new MimeMessage(l_session); // Create a New message

      l_msg.setFrom(new InternetAddress(p_from)); // Set the From address

      // Setting the "To recipients" addresses
      l_msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(p_to,false));

      // Setting the "Cc recipients" addresses
      l_msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(p_cc,false));

      // Setting the "BCc recipients" addresses

      l_msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(p_bcc,false));

      l_msg.setSubject(p_subject); // Sets the Subject

      // Create and fill the first message part
      MimeBodyPart l_mbp = new MimeBodyPart();
      l_mbp.setText(p_message);

      // Create the Multipart and its parts to it
      Multipart l_mp = new MimeMultipart();
      l_mp.addBodyPart(l_mbp);


      // Add the Multipart to the message
      l_msg.setContent(l_mp);

      // Set the Date: header
      l_msg.setSentDate(new Date());

      // Send the message
      Transport.send(l_msg);
      // If here,then message is successfully sent.
      // Display Success message
      l_result = l_result + "<FONT SIZE=4 COLOR="blue"><B>Success!</B>"+
                 "<FONT SIZE=4 COLOR="black"> "+

                 "<HR><FONT color=green><B>Mail was successfully sent to </B></FONT>: "+p_to+"<BR>";
      //if CCed then,add html for displaying info
      if (!p_cc.equals(""))
        l_result = l_result +"<FONT color=green><B>CCed To </B></FONT>: "+p_cc+"<BR>";
      //if BCCed then,add html for displaying info
      if (!p_bcc.equals(""))
        l_result = l_result +"<FONT color=green><B>BCCed To </B></FONT>: "+p_bcc ;

      l_result = l_result+"<BR><HR>";
    } catch (MessagingException mex) { // Trap the MessagingException Error
        // If here,then error in sending Mail. Display Error message.
        l_result = l_result + "<FONT SIZE=4 COLOR="blue"> <B>Error : </B><BR><HR> "+
                   "<FONT SIZE=3 COLOR="black">"+mex.toString()+"<BR><HR>";
    } catch (Exception e) {

        // If here,then error in sending Mail. Display Error message.
        l_result = l_result + "<FONT SIZE=4 COLOR="blue"> <B>Error : </B><BR><HR> "+
                   "<FONT SIZE=3 COLOR="black">"+e.toString()+"<BR><HR>";

        e.printStackTrace();
    }//end catch block
    finally {
      return l_result;
    }
  } // end of method send

} //end of bean


 

InputForm.jsp 

<HTML>
<HEAD>
<TITLE>JSP Sample - Sending Mail using Java Mail API</TITLE>
</HEAD>
<BODY background="../../images/Background.gif">

 <SCRIPT LANGUAGE="JavaScript1.1">
    function submission1() {
      if(document.forms[0].p_from.value =="" ||
         document.forms[0].p_to.value =="" ||
         document.forms[0].p_smtpServer.value =="") {
        alert("Host,From and To fields are mandatory.");
        return;
      }

      document.forms[0].action = "SendMail.jsp";
      document.forms[0].submit();
    }
  </SCRIPT>
  <CENTER><BR>
  <br>
  <BR>
   <TABLE BGCOLOR=black WIDTH=100% CELLPADDING="1">
    <TR><TD>

     <CENTER><B><FONT COLOR=Red SIZE=3>Send Mail
    </TD></TR>
   </TABLE>
   <TABLE BORDER=0 >
    <TR>
    <TD>
      <FORM METHOD=POST>
      <TABLE BORDER=0 CELLPADDING=4>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>Mail Server Host</b></TD>

              <TD ALIGN=LEFT width="298">
                <% String l_svr = (String)session.getAttribute("smtpServer"); %>
                <INPUT TYPE="text" NAME="p_smtpServer" SIZE=60
             VALUE="<%= l_svr!=null ? l_svr : "" %>" >
          </TD>
        </TR>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>From</b></TD>
              <TD ALIGN=LEFT width="298">
                <INPUT TYPE=TEXT SIZE=60 MAXLENGTH=60 NAME="p_from">
          </TD>

        </TR>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>To</b></TD>
              <TD ALIGN=LEFT width="298">
                <INPUT TYPE=TEXT SIZE=60 MAXLENGTH=200 NAME="p_to">
          </TD>
        </TR>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>CC</b></TD>
              <TD ALIGN=LEFT width="298">
                <INPUT TYPE=TEXT SIZE=60 MAXLENGTH=200 NAME="p_cc">
          </TD>

        </TR>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>BCC</b></TD>
              <TD ALIGN=LEFT width="298">
                <INPUT TYPE=TEXT SIZE=60 MAXLENGTH=200 NAME="p_bcc">
          </TD>
        </TR>
        <TR>
              <TD ALIGN=RIGHT width="124"><b>Subject</b></TD>
              <TD ALIGN=LEFT width="298">
                <INPUT TYPE=TEXT SIZE=60 MAXLENGTH=100 NAME="p_subject">
          </TD>
        </TR>

      </TABLE>
          <b>Message</b><br>
      <TEXTAREA NAME="p_message" ROWS=10 COLS=66 SIZE=2000 WRAP=HARD></TEXTAREA>
      <BR><BR>
      <CENTER>
      <INPUT TYPE=BUTTON VALUE=" Send " onClick="submission1();">  
      <INPUT TYPE=RESET VALUE="Reset Form"><br>
      </CENTER>
      </FORM>
    </TD>
    </TR>
  </TABLE>
  </CENTER>
  </BODY>

</HTML>


 

Tags Display JSP Email MimeBodyPart RDP Port RecipientType SMTP SendMail setRecipients Facebook X
Comments 0
Similar posts
  1. Send Email Using C#
    1,378
  2. How To Send An E-mail By Code
    1,117
  3. How to send email in PHP ?
    894
  4. Put Date Time on HTML
    551
  5. How to print out text strings on HTML directly ?
    905
  6. How to include file in JSP ?
    1,251
  7. How to add a declaration on JSP code ?
    1,128
  8. How to set and get sessions on JSP code ?
    1,039
  9. How to resize image ?
    1,308
  10. How to send email by TIdSMTP VCL ?
    1,019
  11. Word counting source program based on MapReduce framework
    692
  12. Copy text to clipboard in Javascript
    1,715
  13. Set up an SMTP server on CentOS 7
    727
  14. Bash script to install postfix and sasl for sending email
    1,197
  15. Gmail requires all senders to authenticate with either SPF or DKIM.
    681
  16. Why SPF and DKIM Are Essential for Linux Email Servers?
    36
  1. Button That Will Show The Page's Source
    388
  2. Add A Scrolling Status Bar Text To Your Site
    409
  3. Add This Page To Favorites
    402
  4. Code To Clear Browser History
    375
  5. Remove the spaces before begin and after end of text
    338
  6. How To Close A Pop-up Window ?
    443
  7. Pop Up Window On Top
    518
  8. How to display message on browser status bar ?
    476
  9. New Window
    606
  10. Firefox Web Tweaking
    376
  11. Color Table
    366
  12. Cursor Changer
    384
  13. Dual Scroller
    333
  14. Enlarge Image
    514
  15. Confirm The Link Clicked
    631
  16. Select And Deselect All Checkboxes By Javascript
    632
  17. Javascript Mouse Event Handler Example
    404
  18. Getting WebSearchers On Your Site
    375
  19. Hiding HTML on the browser
    462
  20. jQuery and Function Chaining
    539
  21. How to get date time in Javascript ?
    500
  22. Javascript based Alarm Clock
    669
  23. Javascript implemented Calendar
    423
  24. Basic Date Display
    513
  25. Address Book
    577
  26. Displays the number of pages that the users browser has displayed in its session
    667
  27. Greeting For The Time Of Day
    394
  28. Access Granted
    587
  29. Cookie enabled browser checking in Javascript
    342
  30. Cookie Redirect
    498
Recently updated
  1. Why 100% SEO Guarantees Better User Engagement and How to Achieve It in Your Service
    42
  2. How do I create animated background for Google Meet?
    21,044
  3. MaxMind GeoLite2 vs. DB-IP Lite vs. ip-api.com: Choosing the Right Free IP Geolocation Solution
    252
  4. Meet Valkey: Why Redis Changed Its License, Why Valkey is Better, and How to Use It as a Drop-in Replacement
    94
  5. How Rogue Web Scrapers Are Stealing My Content and Destroying My Server
    157
  6. Array of arguments passed to script in PHP
    90
  7. Invalid Auction Storms in Ad Tech
    98
  8. Building MRC-Compliant Instrumentation in Ad Tech: Implementation Steps and Key Challenges
    202
  9. The Two Clocks of Ad Server Architecture
    71
  10. Frequency Cap Architecture Overview
    515
  11. Collecting Proof-of-Play from 100,000 Screens
    146
  12. Vector Search in Relational Databases (RDBs): Trends & Usage Environments
    288
  13. What is RedisVL?
    109
  14. Designing a Skill Registry Architecture: Minimize Token Usage and Maximize AI Performance
    232
  15. TPU & GPU Cluster Management Tools
    245
  16. The Concept of Scaffolding in AI Agents
    234
  17. Beyond Static Pipelines: Architecting LLM Multi-Agent Systems for Autonomous Workflow Orchestration
    583
  18. AI-DLC vs. AI-SDLC: Model-Centric vs. System-Centric AI Development
    259
  19. Fine-Tuning Open-Weight LLMs: Training, Licensing, and Deploying Custom Models with Ollama
    339
  20. Inside the Next-Generation Streaming Architecture: Ultra-Low Latency, SGAI, and AI Codecs
    202
  21. Machine Learning: Training vs. Ranking
    222
  22. The Continuous Learning Machine: Designing a Loop That Actually Turns
    222
  23. The Next-Gen Low-Latency Standards: LL-HLS & MoQ
    195
  24. Designing a Data Curation System Around a Vector Database
    221
  25. Extracting Context from Live Video: The Architecture Got Simpler When We Stopped Building Features
    257
  26. The New Ad Stack Behind Live Sports Streaming: Inside SGAI, EABN, and the Standards Race to Fix Live Monetization
    656
  27. Designing MLOps Architectures to Handle Seasonal Data Drift in EV Fleet Models
    196
  28. From 15 to 40+ FPS: Accelerating PyTorch Object Detection on Automotive ECUs
    219
  29. Understanding Data Lineage
    263
  30. System Requirements and Architecture: Intelligent Priority-Based Scheduler
    167