`
floger
  • 浏览: 209375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaMail实例详解

阅读更多

Java Mail API的开发是SUN为Java开发者提供公用API框架的持续努力的良好例证。提倡公用框架,反对受限于供应商的解决方案,
充分预示着一个日益开放的开发环境的建立。Java Mail API的结构本身证明了它的开发者的基本目标之一
--软件开发的工作量应该取决于应用程序本身的复杂程度以及开发者所要求的控制程度。
换句话说,Java Mail API尽可能地保持简单。乍看起来,Java Mail API所拥有的类总数以及类之间的关系可能让人误解为要花费漫长
的学习时间。实际上,一旦正式开始使用,你就会发现该API不失为在应用程序中加入健壮的邮件/通讯支持的简单工具

该实例是一个发送电子邮件的简单实例,由一个填写邮件内容的HTML页面index.html。和负责发送邮件的JSP页面构成。对于初学者有
很好的借鉴作用,内附有详细的注解

一、index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>填写邮件信息</title>
<LINK REL="stylesheet" HREF="E:\tomcat 4.1.12\webapps\qds\css.css" TYPE="text/css">
</head>

<body bgcolor="#FFFFCC">
<form name="form1" method="post" action="SendMail.jsp">
<table width="75" border="0" align="center" cellspacing="1" bgcolor="#006600" height="258">

<div align="center">

<font size="5" color="blue">填写邮件信息</font>
<tr bgcolor="#FFFFFF">
<td width="30%" height="34">发件人地址:</td>
<td width="70%" height="34">
<input name="from" type="text" id="from" CLASS="kuang-bg"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="30%" height="34">收信人地址:</td>
<td width="70%" height="34">
<input name="to" type="text" id="to" CLASS="kuang-bg"></td>
</tr>

<tr bgcolor="#FFFFFF">
<td width="30%" height="25">主题:</td>
<td width="70%" height="25">
<input name="title" type="text" id="title" CLASS="kuang-bg"></td>
</tr>
<tr>
<td height="119" colspan="2" bgcolor="#FFFFFF">
<textarea name="content" cols="50" rows="5" id="content" CLASS="kuang-bg"></textarea></td>
</tr>
<tr align="center">
<td colspan="2" bgcolor="#FFFFFF" height="27">
<input type="submit" name="Submit" value="发  送" CLASS="botton">
<input type="reset" name="Submit2" value="重  写" CLASS="botton">
</td>
</tr>
</table>
</form>
</body>
</html>


二、sendMail.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<!--%request.setCharacterEncoding("gb2312");%--><!--中文处理代码-->
<!--导入要用到的类库-->
<%@ page import="java.util.*"%>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送邮件</title>
</head>
<body>

<%
try{
//从html表单中获取邮件信息
String tfrom=request.getParameter("from");
String tto=request.getParameter("to");
String ttitle=request.getParameter("title");
String tcontent=request.getParameter("content");

//JavaMail需要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.
//Properties对象获取诸如邮件服务器、用户名、密码等信息,以及其他可在整个应用程序中 共享的信息。

Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.21cn.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证

//方法二:(如果是在weblogin配置JavaMail:则需指定JNDI名检索
//Context ctx=new InitialContext();
//Session s=(Session)ctx.lookup("MailSession");
//Message msg=new MimeMessage(s);


//这个Session类代表JavaMail 中的一个邮件session. 每一个基于 JavaMail的应用程序至少有一个session但是可以有任意多的session。
//Session类定义全局和每个用户的与邮件相关的属性。这此属性说明了客房机和服务器如何交流信息。


Session s=Session.getInstance(props,null);//根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
s.setDebug(true);//设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法

//  一旦创建了自己的Session对象,就是该去创建要发送的消息的 时候了。这时就要用到消息类型(MimeMessage是其中一种类型)。
// Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session。
//  Message类表示单个邮件消息,它的属性包括类型,地址信息和所定义的目录结构。

Message message=new MimeMessage(s);//由邮件会话新建一个消息对象

//message.setContent("hello","test/plain");//设置消息的内容类型,如果发送的格式有HTML格式就必须设置,
//message.setText("Hello");//发送一般文本格式的消息

//设置邮件,一旦您创建了 Session 和 Message,并将内容填入消息后,就可以用Address确定信件地址了。
//如果想让一个名字出现在电子邮件地址后,也可以将其传递给构造器:
//Address from=new InternetAddress("xmqds@21cn.com","qdison");//发件人的邮件地址

Address from=new InternetAddress(tfrom);//发件人的邮件地址
message.setFrom(from);//设置发件人

Address to=new InternetAddress(tto);//收件人的邮件地址
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO,还有3种预定义类型如下:

//Message.RecipientType.TO
//Message.RecipientType.CC
//Message.RecipientType.BCC

message.setSubject(ttitle);//设置主题
message.setText(tcontent);//设置信件内容
message.setSentDate(new Date());//设置发信时间


message.saveChanges();//存储邮件信息


// Transport 是用来发送信息的,
// 用于邮件的收发打操作。
Transport transport=s.getTransport("smtp");
transport.connect("smtp.21cn.com","你的用户名","你的密码");//以smtp方式登录邮箱
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址
transport.close();

%>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>
<p><a href="index.jsp">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html>

分享到:
评论

相关推荐

    JavaWeb中使用JavaMail实现发送邮件功能实例详解

    主要介绍了JavaWeb中使用JavaMail实现发送邮件功能的实例代码,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧

    JavaMail开发手册

    强大的javamail开发工具,提供最具代表性的开发实例和开发详解。

    深入Java Servlet网络编程

    目录 第1章 分布式Web应用程序 1. 1 分布式Web应用程序 1. 2 企业级n-层应用 ... 3 HTTP详解 A. 3. 1 建立TCP/IP连接 A. 3. 2 客户端发送请求 A. 3. 3 服务器返回响应 A. 3. 4 HTTP报头 附录B Servlet API

    CSDN.rar_简繁体_股票 java

    带你步入J2EE殿堂:最易懂的J2EE实例 简析J2EE应用程序数据库类设计模式 编写高级应用程序3 关 于JAVA 的 可 移 植 性 Java 程序编码规范 利用Java实现zip压缩/解压缩 Java语言的Socket编程 利用Java实现串口全双工...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    韩顺平sevlet,jsp视频教程知识点.txt

    视频描述: 1 如何在servlet中显示图片 2 分页技术详解 3 用户登录系统功能改进 韩顺平 j2ee视频实战教程servlet第5讲(上集).wmv 视频描述: (一) Cookie的讲解和使用 (二) Cookie和Session的比较 (三) 网站框架的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.3.3. bean属性及构造器参数详解 3.3.3.1. 直接量(基本类型、Strings类型等。) 3.3.3.2. 引用其它的bean(协作者) 3.3.3.3. 内部bean 3.3.3.4. 集合 3.3.3.5. Nulls 3.3.3.6. XML-based configuration metadata ...

    Spring 2.0 开发参考手册

    3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on 3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. ...

    spring chm文档

    3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on 3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. ...

Global site tag (gtag.js) - Google Analytics