`
floger
  • 浏览: 214888 次
  • 性别: 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>

分享到:
评论

相关推荐

    JAVAMAIL实例

    ### JAVAMAIL实例知识点详解 #### 一、概述 JavaMail API是Java平台中用于发送和接收电子邮件的标准API,广泛应用于各种Java应用程序中。本文将详细介绍如何利用JavaMail发送带有SMTP认证、附件以及HTML格式内容的...

    JavaMail详解

    在JavaMail详解的chm帮助文档中,我们可以找到以下关键知识点: 1. **JavaMail API 概述**: - JavaMail API 提供了邮件服务的接口和类,例如 `javax.mail.Session`、`javax.mail.Transport`、`javax.mail.Message...

    j2ee 经典实例详解

    《J2EE经典实例详解》是一本专注于J2EE技术实践的书籍,旨在通过一系列典型的应用实例,深入浅出地解析J2EE平台的核心技术和开发流程。J2EE(Java 2 Platform, Enterprise Edition)是Java平台的企业版,主要用于...

    Javamail开发实例

    ### Javamail开发实例详解 #### 邮件系统基础概念 在开始Javamail的开发之前,我们首先需要了解邮件系统的基本工作原理。邮件系统主要由以下几个部分组成: 1. **邮件服务器**:负责邮件的发送、接收及存储。 2. ...

    [JavaMail]8详解Message和MIME.docx

    ### JavaMail中的MIME与Message详解 #### 一、MIME概述 MIME(Multipurpose Internet Mail Extensions)即多用途Internet邮件扩展服务,最初于1992年应用于电子邮件系统,旨在解决传统电子邮件只能发送纯文本的...

    struts2集成javamail发邮件示例详解

    `Session.getDefaultInstance`方法创建一个默认的会话实例,传入系统属性和一个授权信息提供者(在本例中为`null`,因为没有设置特定的授权信息)。 4. **创建MIME邮件对象**: MIME(Multipurpose Internet Mail ...

    javamail绝好资料 doc文档

    在“JavaMail API 详解.chm”这个帮助文档中,你可能会找到以下关键知识点: 1. **JavaMail 基础**:了解 JavaMail 的核心概念,如 Session、Store、Folder、Message 和 Address 等。Session 是所有 JavaMail 操作...

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

    总的来说,JavaMail API 提供了一个强大的工具集,使得在JavaWeb应用中实现邮件发送变得简单。只需配置好邮件服务器的相关参数,编写适当的代码,就可以实现从应用到用户邮箱的信息传递。在实际开发中,还可以添加...

    javamail 中文API文档

    ### JavaMail API中文文档知识点详解 #### 一、概述 JavaMail API是Java平台上的电子邮件解决方案,它提供了一组用于发送、接收、管理和处理电子邮件消息的API。JavaMail API主要包含以下几个核心概念:会话...

    JavaMail API Design Specification

    《JavaMail API设计规范详解》 JavaMail API是Java平台上的一个强大工具,它为开发者提供了处理邮件系统交互的能力,包括发送、接收、管理邮件等。这篇博文将深入探讨JavaMail API的设计规范,帮助读者理解其核心...

    javaMail学习

    ### JavaMail技术详解 #### 一、JavaMail概述 JavaMail是Sun Microsystems(现已被Oracle收购)开发的一套用于处理电子邮件的API集合,其主要功能是提供一套平台无关且独立于具体邮件传输协议的编程接口,使Java...

    JavaMail介绍.pdf

    ### JavaMail API 详解 #### 一、JavaMail 技术简介 JavaMail API 是一个用于阅读、编写和发送电子邮件的可选包(标准扩展),主要用于构建基于标准的电子邮件客户端。它支持多种互联网邮件协议,包括但不限于 ...

    JavaMail开发<精通J2EE网络编程 12章>

    【JavaMail 开发详解】 JavaMail 是一个 Java 语言编写的开源库,它为开发者提供了在 Java 应用中收发电子邮件的能力。在 J2EE 网络编程中,JavaMail 是一个不可或缺的工具,尤其对于那些需要进行邮件交互的应用来...

    mtn首页截图。javamail

    在`MailUtil.java`中,我们可能会看到如何实例化`Session`,创建并设置`MimeMessage`,以及如何使用`Transport`发送邮件。代码可能还会涉及异常处理,以及如何处理失败的发送尝试。如果`MTN.htm`包含HTML内容,那么...

    fundamentals of the javamail api

    ### JavaMail API基础知识详解 #### 一、教程提示 ##### 是否应该参加此教程? 如果你希望在平台独立的Java解决方案中集成邮件功能,那么JavaMail API将是你不可或缺的选择。该API提供了一个与协议无关的模型,...

    基于JavaMail的电子邮件群发

    【JavaMail API 知识点详解】 JavaMail API 是一套用于处理电子邮件的 Java 库,它允许开发者在 Java 应用程序中实现邮件的发送、接收和管理功能。该API 提供了与邮件协议无关的接口,使得开发人员能够轻松地处理 ...

    J2ME程序设计实例

    **J2ME程序设计实例详解** Java 2 Micro Edition(J2ME)是Java平台的一个重要组成部分,专门针对嵌入式设备和移动设备的应用开发。它提供了轻量级的运行环境和开发框架,使得开发者可以为手机、智能手表、家用电器...

Global site tag (gtag.js) - Google Analytics