Home | Ajax | BioInformatics | Dojo | EAI | EJB | Hibernate | J2ME | Java | Java Glossary | Java Servlets | JavaScript | Jboss | JDBC | JDO | Jmeter | JSF | JSP | JUnit | Maven | MySQL | Spring Framework | SQL | Struts | Technology | WAP | Web Services | XML
 
 
Search All Tutorials

 
Programming Tutorials: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML
 
Struts
  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. 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);
                      }

 

                    

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

Current Comments

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

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

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

 

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.

Hot Web Programming Job

Java String toLowerCase Example
Java String toCharArray Example
Java String substring Example
Java String indexOf Example
Java String startsWith Example
Java String hashCode Example
Java String matches Example
Java String length Example
Java String lastIndexOf Example
Java String isEmpty Example
Java String equalsIgnoreCase Example
Java String equals Example
Java String endsWith Example
Java String copyValueOf Example
Java String contentEquals Example
  EAI Articles
  Java Certification
Tell A Friend
Your Friend Name
Search Tutorials

 

 
 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

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

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

Copyright © 2007. All rights reserved.