频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用Servlet发送电子邮件

来源:J2ME开发网 作者:mingjava 出处:巧巧读书 2006-10-13 进入讨论组
     使用JavaMail实现收发电子邮件功能  一文中介绍了如何安装JavaMail,使用JavaMail实现简单的邮件收发功能。本文介绍如何使用Servlet发送电子邮件。由于如何使用JavaMail已经在上文中有所介绍,因此本文将不做过多的原理介绍。

     用Servlet实现邮件发送非常简单,我们只是需要构建一个jsp文件,提供给用户提交邮件信息的表单。
使用Servlet发送电子邮件

 

 

 

 

 

 

 

<%@ page contentType="text/html;charset=gb2312"%>
<html>
 <head>
  <title>Welcome</title>
 </head>
 <body>
  <center>
  <p>Welcome</p>
  <form name="form1" method="post" action="maildo">
    <p>收件人:
      <input type="text" name="send">
    </p>
    <p>主 题:
      <input type="text" name="subject">
    </p>
    <p>内 容:
      <textarea name="content"></textarea>
    </p>
    <p>
      <input type="submit" name="Submit" value="send">
    </p>
  </form>
  <p>&nbsp;</p>
</center>
 </body>
</html>

    浏览器收集到用户输入的信息后传递给Servlet来处理,Servlet通过request.getParameter()方法得到相关的数据后,通过JavaMail提供的API发送电子邮件。

package com.j2medev.servletmail;

import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;
import java.net.*;

public class MailServlet extends HttpServlet
{
    private static String host;

    private static String from;

    public void init(ServletConfig config) throws ServletException
    {
        super.init(config);
        host = config.getInitParameter("host");
        from = config.getInitParameter("from");
        System.out.println(host + from);
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {

        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {
      
        String send = request.getParameter("send");
        String subject = request.getParameter("subject");
        String content = request.getParameter("content");

        try
        {
            Properties props = System.getProperties();
            // Setup mail server
            props.put("mail.smtp.host", host);
            // Get session
            Session session = Session.getDefaultInstance(props, null);
            // Define message
            MimeMessage message = new MimeMessage(session);
            // Set the from address
            message.setFrom(new InternetAddress(from));
            // Set the to address
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                    send));
            // Set the subject
            message.setSubject(subject);
            // Set the content
            message.setText(content);
            // Send message
            Transport.send(message);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

    接下来我们编辑web.xml文件,注意在init-param中写上host和from的参数,以便Servlet初始化的时候可以读取。
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
 <servlet>
  <servlet-name>ServletMail</servlet-name>
  <servlet-class>com.j2medev.servletmail.MailServlet</servlet-class>
  <init-param>
   <param-name>host</param-name>
   <param-value>smtp.263.net</param-value>
     </init-param>
     <init-param>
      <param-name>from</param-name>
      <param-value>eric.zhan@263.net</param-value>
     </init-param>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>ServletMail</servlet-name>
  <url-pattern>/maildo</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

 <error-page>
  <error-code>404</error-code>
  <location>/error.jsp</location>
 </error-page>

</web-app>
    由于我们需要用到JavaMail和JAF的支持,因此我们需要把相关的包放到YOURAPP/WEB_INF/lib下。在浏览器输入http://localhost:8080/yourapp/index.jsp 发送电子邮件。

本U R L:http://www.qqread.com/j2ee/u220782.html 更多文章 更多内容请看电子邮件安全邮件服务器专题电子邮件使用基础篇专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:J2ME中处理日期相关问题

较新的文章:J2ME Game开发笔记
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章