Frameworks| Hibernate| Struts| JSF| JavaFX| Ajax| Spring| DOJO| JDO| iBatis| Questions?

 

 

 

 

 

 

 

 

 

 

 

 

 

Search Tutorials:
 

Software Solutions and Services
 

 
  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification
  Java Applet
Questions
Comments
 
Send Mail Bean 
 

In our application we have developed mailer bean that sends welcome email when a new user is registered to the system.

 

Send Mail Bean

                     

In our application we have developed mailer bean that sends welcome email when a new user is registered to the system. Mail Bean also used when user asks for the forgotten password.

 

In this article we use Java Mail API to send emails. This is standard part of  J2EE.You can  download this API from http://java.sun.com/products/javamail/.If you download this API ,you will get mail.jar file .Put this file in your tomcat's lib directory.

 

Now we write java source code to send a mail. Very first we imports some java packages which allow you to use methods. 

package roseindia.web.common;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class SendMail
{

  private String strSmtp;

    
    public void setStrSmtp(String strSmtp){
    this.strSmtp=strSmtp;
    }

  public String getStrSmtp(){
    return this.strSmtp;
  }

  

  public void sendMailString recipients[ ], String subject, String message ,

 String from)
 
throws MessagingException
  {
    boolean debug = false;

     //Set the host smtp address

     Properties props = new Properties();
     props.put("mail.smtp.host", getStrSmtp());

     

    // create some properties and get the default Session

    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(debug);


    // create a message
    Message msg = new MimeMessage(session);


    // set the from and to address
    InternetAddress addressFrom = new InternetAddress(from);
    msg.setFrom(addressFrom);

    InternetAddress[] addressTo = new InternetAddress[recipients.length]
    for (int i = 0; i < recipients.length; i++)
    {
      addressTo[inew InternetAddress(recipients[i]);
    }
    msg.setRecipients(Message.RecipientType.TO, addressTo);
     


    // Optional : You can also set your custom headers in the Email if you Want
    //msg.addHeader("MyHeaderName", "myHeaderValue");

    // Setting the Subject and Content Type
    msg.setSubject(subject);
    msg.setContent(message, "text/plain");

    //send message
    Transport.send(msg);
  }
}

After that we declare a member variable  'strSmtp' to store name of the mail server for the connection. This strSmtp represents the host name or IP address of mail server. Here we use setter and getter methods to set or get the value of strSmtp. After getting the value of  strSmtp  we need to set  this value  into a property object.

                           Properties props = new Properties();
                           props.put("mail.smtp.host", getStrSmtp());

The  property 'mail.smtp.host' contains the information about mail server  to be used for the connection. Now this is time to connect with mail server and create a session. This is done by a specific class of Java Mail API named Session. We use the following code for this purpose-

                           Session session = Session.getDefaultInstance(props, null);
                           session.setDebug(debug); 

After you have the Session, you can create a Message from the Session. This  Message class represents the email message. Message class is an abstract class, so you must create an instance of a subclass. That subclass is Mime Message.

                           Message msg = new MimeMessage(session);

After we have the Message, we will create a instances of InternetAddress class for from and to email addresses. 

                           InternetAddress addressFrom = new InternetAddress(from);

                           InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
                           for (int i = 0; i < recipients.length; i++)
                           {
                                      addressTo[i] = new InternetAddress(recipients[i]);
                           }

Now, by using setFrom() and setRecipients() methods of Message class we will set from and recipients email addresses 

                           msg.setFrom(addressFrom);
                           msg.setRecipients(Message.RecipientType.TO, addressTo);

Now, we will set subject of message and content type.                          

                          // Setting the Subject and Content Type
                          
msg.setSubject(subject);
                           msg.setContent(message, "text/plain");

Finally our message is set, send it with the Transport class

                            Transport.send(msg);

This uses the SMTP server specified in the properties for the session.
 

Now  set this bean and property in applicationContext.xml file

                            <beans>
                                   <bean id="mailbean" class="roseindia.web.common.SendMail">
                                             <property name="strSmtp"><value>192.168.10.14</value></property>
                                  </bean>
                           </beans>

Here we set the host name or IP of webserver. 

Defining constants---

package roseindia.web.common;

public class ProjectConstants {
public static String MAIL_BEAN="mailbean";

public static String FROM_MAIL="deepak@localhost";
}

Put the following code in which class from where you want to send mail--------

                       //Retrieve the DAO Reference
                       roseindia.web.common.SendMail mailBean = (roseindia.web.common.SendMail) 
                       ServiceFinder.getContext(request).getBean(roseindia.web.common.ProjectConstants.MAIL_BEAN);

                       String subject="Your username & password "; 

                       String message="Hi,"+username;
                        message+="\n Your username is "+username+".";
                        message+="\n Your password is "+strPasswordEmail[0]+".";
                        message+="\n Please login to the web site with your username and password.";
                        message+="\n \n Thanks";
                        message+="\n \n \n Regards";

                       //Getting  FROM_MAIL from roseindia.web.common.ProjectConstants.FROM_MAIL

                       String from=roseindia.web.common.ProjectConstants.FROM_MAIL;

                       try{
                            mailBean.sendMail(reciepent,subject,message,from);

                      }catch(Exception e){
                       System.out.println("Error in sending mail:"+e);
                      }

                    

» View all related tutorials
Related Tags: java c hibernate web error learning com configuration spring ide class j2ee frameworks jdbc data development ui ssis process framework

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

Audio Version
Reload Image
 

Note: Emails will not be visible or used in any way, and are not required. Please keep comments relevant. Any content deemed inappropriate or offensive may be edited and/or deleted.

No HTML code is allowed. Line breaks will be converted automatically. URLs will be auto-linked. Please use BBCode to format your text.

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

4 comments so far (
post your own) View All Comments Latest 10 Comments:

hi

i have changed the host ip of mail server..i m not using my smtp server address is there any other way so i can use free mail server address like cgi mail server please suggest me thansk

Posted by ashish on Wednesday, 04.8.09 @ 10:53am | #86630

please explain which are the beans and .java files

Posted by sksk on Monday, 04.6.09 @ 17:09pm | #86556

Hi,

I am new to Spring. Can any one guide me for configuring JSF with Spring(Hibernate).

If you have any samples please send to following mail id.

nirumagic@gmail.com

Thanx in advance

Posted by Nirumagic on Wednesday, 09.12.07 @ 21:41pm | #26853

I have changed the HOST IP to send mail from my server but even after mails are not been send.
Pls. clarify else replacing Host IP shall I have to do any other changes.

Posted by Marla on Thursday, 03.8.07 @ 10:35am | #11097

Training Courses
Tell A Friend
Your Friend Name
Website Designing Services
 
Web Designing Packages From $150!
 
Website Designing Company Web Hosting
 
Website Designing Quotation
 
Search Tutorials:

 

 
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Indian Software Development Company | iPhone Development Company in India | Flex Development Company in India | Java Training Delhi | Java Training at Noida |

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2008. All rights reserved.