`
soardragon
  • 浏览: 316730 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

javamail使用完全手册

阅读更多
1,哪里是开始:
初始环境,安装好你的j2sdk和你的web服务器,也就是说你的机器应该能够运行jsp。
不能??
这里不管
2,安装javamail和jaf
JavaMail是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。 支持pop3,imap,smtp.
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),
这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。
JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持
去java.sun.com下再两个zip包(javamail和jaf的)
3,配置
两个zip解压到c:(这里是举例,你的可能不同)
把javamai的mail.jar和jaf的activation.jar加入到环境变变量中
4,用来发送email的HTML源代码
<HTML>
     <BODY>
     <FORM action="sendmail.jsp" method="post">
     <TABLE align="center">
      <TR>
       <TD width="50%">
        To:<BR><INPUT name="to" size="25">
       </TD>
       <TD width="50%">
        From:<BR><INPUT name="from" size="25">
       </TD>
      </TR>
      <TR>
       <TD colspan="2">
        Subject:<BR><INPUT name="subject" size="50">
       </TD>
      </TR>
      <TR>
       <TD colspan="2">
        <P>Message:<BR><TEXTAREA name="text" rows=25 cols=85></TEXTAREA></P>
       </TD>
      </TR>
     </TABLE>
     <INPUT type="submit" name="cb_submit" value=" Send ">
     <INPUT type="reset" name="cb_reset" value=" Clear ">
    </FORM>
    </BODY>
    </HTML>
5,今天你“发“了没有
<%@ page
      import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util.*"
      %>
    <html>
    <head>
    <TITLE>JSP meets JavaMail, what a sweet combo.</TITLE>
    </HEAD>
    <BODY>
    <%
     try{
       Properties props = new Properties();
       Session sendMailSession;
       Store store;
       Transport transport;
      sendMailSession = Session.getInstance(props, null);
      props.put("mail.smtp.host", "smtp.jspinsider.com");
      //用你的smtp服务器代替上面的 < smtp.jspinsider.com >
      Message newMessage = new MimeMessage(sendMailSession);
      newMessage.setFrom(new InternetAddress(request.getParameter("from")));
      newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));
      newMessage.setSubject(request.getParameter("subject"));
      newMessage.setSentDate(new Date());
      newMessage.setText(request.getParameter("text"));
      transport = sendMailSession.getTransport("smtp");
      transport.send(newMessage);
       %>
    <P>Your mail has been sent.</P>
    <%
      }
     catch(MessagingException m)
      {
      out.println(m.toString());
      }
    %>
    </BODY>
    </HTML>
解释解释:
属性对象

JavaMail需要创建一个格式为"mail.smtp.host"的文件用来发送信息。

Properties props = new Properties ();

props.put("mail.smtp.host", "smtp.jspinsider.com"); 对话对象

所有的基于JavaMail的程序都至少需要一个或全部的对话目标。

Session sendMailSession;

sendMailSession = Session.getInstance(props, null);

传输

邮件的传输只有送出或受到两种状态。JavaMail将这两种不同状态描述为传输和储存。传输将送出邮件,而储存将收取邮件。

Transport transport;

transport = sendMailSession.getTransport("smtp");

使用JavaMail能为我们节约大量的时间。JavaMail能代替所有的SMTP的工作。

注意:JavaMail并不能完全的支持所有的邮件发送收取工作。它目前仅支持IMAP、SMTP和POP3,除此以外你只有等待新的JavaMail版本或自己开发协议。

信息对象

信息对象将把你所发送的邮件真实的反映出来。

Message newMessage = new MimeMessage(sendMailSession);

这就是我们所需要的全部四个对象。下一步将是如何将对象加入到JSP中。
3.JavaMail的常用类介绍

事先说明:

没用过JavaMail的人可能看不懂这些介绍,不过不要紧,后面的文章有具体的实例,到时也可倒回来查看这些类的用法.


(1) javax.mail.Properties类
  JavaMail需要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.

用法:
 Properties props = new Properties ();
   props.put("mail.smtp.host", "smtp.163.com");//可以换上你的smtp主机名。


(2) javax.mail.Session类
  这个Session类代表JavaMail 中的一个邮件session. 每一个基于 JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中, Session对象需要知道用来处理邮件的SMTP 服务器。

用法:
   Session sendMailSession;
   sendMailSession = Session.getInstance(props, null);


(3) javax.mail.Transport类
  邮件是既可以被发送也可以被受到。JavaMail使用了两个不同的类来完成这两个功能:Transport 和Store. Transport 是用来发送信息的,而Store用来收信。对于这的教程我们只需要用到Transport对象。

用法:
Transport transport;
  transport = sendMailSession.getTransport("smtp");

  用JavaMail Session对象的getTransport 方法来初始化Transport。传过去的字符串申明了对象所要使用的协议,如"smtp"。这将为我们省了很多时间。因为JavaMail以境内置了很多协议的实现方法。

 注意: JavaMail并不是绝对支持每一个协议,目前支持IMAP、 SMTP和 POP3.


(4) javax.mail.MimeMessage类
  Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session。

  用法:
Message newMessage = new MimeMessage(sendMailSession);


(5) javax.mail.InternetAddress类
一旦您创建了 Session 和 Message,并将内容填入消息后,就可以用Address确定信件地址了。和 Message 一样,Address 也是个抽象类。您用的是Javax.mail.internet.InternetAddress 类.

用法:
InternetAddress from=new InternetAddress("xxf@cafe.com");


(6) javax.mail.Store类
Store类实现特定邮件协议上的读、写、监视、查找等操作。通过Javax.mail.Store类可以访问Javax.mail.Folder类。

用法:
Store store=s.getSorte("pop3");//s为一个邮件会话
store.connect(popserver,username,password);//通过你提供的pop地址,用户名和密码登录你的邮箱


(7) javax.mail.Folder类
Folder类用于分级组织邮件,并提供照Javax.mail.Message格式访问email的能力。

用法:
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);


(8) javax.mail.Internet.MimeMultpart
一般保存电子邮件内容的容器是Multipart抽象类,它定义了增加和删除及获得电子邮件不同部分内容的方法.由于Multipart是抽象类,我们必须为它使用一个具体的子类,JavaMail API提供javax.mail.Internet.MimeMultpart类来使用 MimeMessage对象.

用法:
MimeMultipart multipart=new MimeMultipart();

注:我们使用MimeMultipart对象的一个方法是addBodyPart(),它在我们的电子邮件内容里添加BodyPart(BodyPart类在下面紧接着要介绍)对象.消息可以有很多部分,一个BodyPart可以代表一个部分.


(9) javax.mail.Internet.MimeBodyPart类

MimeBodyPart是BodyPart具体用于mimeMessage的一个子类.
MimeBodyPart对象代表一个MimeMessage对象内容的一部分.每个MimeBodyPart被认为有两部分:
⊙一个MIME类型
⊙匹配这个类型的内容

用法:
MimeBodyPart mdp=new MimeBodyPart();
String text="Hello JavaMail!";
mdp.setContent(text,"text/plain");//定义MIME类型为text/plain,并设置MimeBodyPart的内容.


(10) javax.activation.DataHandler类(包含在JAF中)
JavaMail API 不限制信息只为文本,任何形式的信息都可能作茧自缚MimeMessage的一部分.除了文本信息,作为文件附件包含在电子邮件信息的一部分是很普遍的. JavaMail API通过使用DataHandler对象,提供一个允许我们包含非文本BodyPart对象的简便方法.

用法:
DataHandler dh=new DataHandler(text,type);
mdp.setDatahandler(dh);//mdp是一个MimeBodyPart对象


(11) javax.activation.FileDataSource类(包含在JAF中)
一个FileDataSource对象可以表示本地文件和服务器可以直接访问的资源.一个本地文件可以通过创建一个新的MimeBodyPart对象附在一个mimeMessage对象上.

用法:
MimeMultipart mm=new MimeMultipart();
MimeBodyPart mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("c:/exam.txt");
mdp.setDataHandler(new DataHandler(fds)); //设置数据源
mm.addBodyPart(mdp); //为当前消息MimeMultipart对象增加MimeBodyPart


(12) javax.activation.URLDataSource类(包含在JAF中)
远程资源,URL不会指向它们,由一个URLDataSource对象表示.一个远程资源可以通过创建一个新mimeBodyPart对象附在一个mimeMessage对象上(同FileDataSource差不多).

用法:
与FileDataSource唯一不同的是数据源的设置:
URLDataSource uds=new URLDataSource("http://www.cnjsp.com/logo.gif")
分享到:
评论
1 楼 little fish 2008-05-17  
"mail.smtp.host"这个格式的文件建在那个包下面啊

相关推荐

    JSP 数据库系统开发完全手册

    《JSP数据库系统开发完全手册》是一本深入探讨如何利用JSP技术进行数据库系统构建的专业指南,涵盖了多种常见Web应用程序的开发,包括聊天室、网上论坛、网站流量图表分析、邮件群发以及在线投票系统。这些功能是...

    Java Web 整合开发 完全自学手册 源代码

    《Java Web 整合开发 完全自学手册》是一本深度探讨Java Web技术的书籍,由白广元编著。这本书旨在帮助读者全面掌握Java Web应用程序的开发技能,从基础到高级,涵盖了一系列核心概念和技术。通过源代码的学习,读者...

    jmeter中文使用手册

    Apache JMeter是一款开源的性能测试工具,它完全由Java语言开发,是100%纯Java桌面应用程序,专门设计用于测试客户端/服务器架构软件,例如web应用程序。JMeter能够测试基于静态资源和动态资源的性能,例如静态文件...

    J2EE完全参考手册

    《J2EE完全参考手册》是一部深度探讨Java企业级应用开发的权威指南,涵盖了J2EE平台的核心技术和实践方法。本书旨在帮助开发者全面理解和掌握J2EE技术,从而能够高效地构建分布式、多层的企业级应用程序。以下是针对...

    J2EE完全参考手册.rar

    在学习和使用《J2EE完全参考手册》时,建议首先理解J2EE的基本架构和组件,然后深入研究EJB,掌握其设计模式和编程模型。同时,通过实际的项目案例来巩固理论知识,熟悉部署流程和配置细节。随着对J2EE理解的加深,...

    JMeter 高级实践使用手册

    若需使用Email功能,需要JavaMail和activation库。SSL加密测试则需要将SSL相关的Java包添加到JMeter的classpath中。 在JMeter中,可以添加定时器来控制请求间隔,监听器用于收集和显示测试数据,断言用于验证响应...

    Jmeter 性能测试中文使用手册

    Apache JMeter是一款强大的性能测试工具,完全由Java编写,用于测试C/S架构的软件,特别是Web应用程序。它能够评估各种类型的资源,如静态文件、Java Servlets、Java对象、数据库和FTP服务器的性能。JMeter的功能...

    JMeter中文使用手册

    ### JMeter中文使用手册知识点详解 #### 一、概述 **Apache JMeter**是一款由Apache组织开发的开源软件,主要用于进行压力测试。该工具最初设计的目的在于测试Web应用的性能,但随着时间的发展,其功能逐渐扩展到...

    Jmeter使用手册

    Apache JMeter是一款广泛使用的开源性能测试工具,它完全由Java编写,主要用于测试基于客户端/服务器(C/S)模型的应用程序,尤其是Web应用程序。JMeter能够测试静态和动态资源,如静态文件、Java Servlets、Java...

    整理的JMETER使用手册.doc

    对于开发或使用SUN的Java标准扩展包,你可能需要Java编译器、SAX XML解析器、Email支持相关的库(如JavaMail和activation包)以及SSL加密支持(测试加密连接)。 JMeter的核心功能包括: 1. **取样器(Samplers)*...

    jmeter中文使用手册【书签版】.pdf

    ### jmeter中文使用手册知识点概览 #### 一、引言 **Apache JMeter**是一款完全基于Java的开源工具,专为压力测试和性能测试而设计。它不仅可以用于测试客户端/服务器架构的应用程序,还可以用来测试多种类型的资源...

    jmeter使用手册

    它是完全免费且开源的,由Apache软件基金会开发,最初由Stefano Mazzocchi创建,目的是测试Apache JServ的性能,后来逐渐演变为一个功能丰富的测试框架。 JMeter的特性包括: 1. **多平台支持**:由于JMeter是100%...

    Spring 2.0 开发参考手册

    6.4.1. Spring AOP还是完全用AspectJ? 6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用...

    J2EE完全参考手册-J2EE概述

    4. **数据访问层**:负责与数据库的交互,通常使用JDBC(Java Database Connectivity)接口和JPA(Java Persistence API)来实现对象关系映射。 **J2EE服务和API** J2EE提供了多种服务和API,如: 1. **安全性**:...

Global site tag (gtag.js) - Google Analytics