Servlet and email : Email « Servlets « Java






Servlet and email



import java.util.Properties;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sun.rmi.transport.Transport;

import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;

public class EmailServlet extends HttpServlet {

  //default value for mail server address, in case the user
  //doesn't provide one
  private final static String DEFAULT_SERVER = "mail.attbi.com";

  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, java.io.IOException {

    String smtpServ = DEFAULT_SERVER;

    String from = "java2s@yourserver.com";

    String to = "yourname@yourserver.com";

    String subject = "subject line";

    String emailContent = "emailContent";

    response.setContentType("text/html");
    java.io.PrintWriter out = response.getWriter();
    out
        .println("<html><head><title>Email message sender</title></head><body>");

    try {

      sendMessage(smtpServ, to, from, subject, emailContent);

    } catch (Exception e) {

      throw new ServletException(e.getMessage());

    }

    out.println("<h2>The message was sent successfully</h2>");

    out.println("</body></html>");

  } //doPost

  private void sendMessage(String smtpServer, String to, String from,
      String subject, String emailContent) throws Exception {

    Properties properties = System.getProperties();

    //populate the 'Properties' object with the mail
    //server address, so that the default 'Session'
    //instance can use it.
    properties.put("mail.smtp.host", smtpServer);

    Session session = Session.getDefaultInstance(properties);

    Message mailMsg = new MimeMessage(session);//a new email message

    InternetAddress[] addresses = null;

    try {

      if (to != null) {

        //throws 'AddressException' if the 'to' email address
        //violates RFC822 syntax
        addresses = InternetAddress.parse(to, false);

        mailMsg.setRecipients(Message.RecipientType.TO, addresses);

      } else {

        throw new MessagingException(
            "The mail message requires a 'To' address.");

      }

      if (from != null) {

        mailMsg.setFrom(new InternetAddress(from));

      } else {

        throw new MessagingException(
            "The mail message requires a valid 'From' address.");

      }

      if (subject != null)
        mailMsg.setSubject(subject);

      if (emailContent != null)
        mailMsg.setText(emailContent);

      //Finally, send the meail message; throws a 'SendFailedException'
      //if any of the message's recipients have an invalid adress
      Transport.send(mailMsg);

    } catch (Exception exc) {

      throw exc;

    }

  }//sendMessage

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, java.io.IOException {

    doPost(request, response);

  }

}//EmailServlet



           
       








Related examples in the same category

1.Sending E-Mail from Servlets
2.Java servlet application
3.Email JNDI Filter
4.Email Bean
5.Mail Accessor
6.Sending e-mail by using the JavaMail API and JDBC