JavaMail组件的简单介绍.doc_第1页
JavaMail组件的简单介绍.doc_第2页
JavaMail组件的简单介绍.doc_第3页
JavaMail组件的简单介绍.doc_第4页
JavaMail组件的简单介绍.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaMail组件的简单介绍一、什么是JavaMail JavaMail是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。 虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation相关的包你可以到sun的官方网站上去下载二、如何使用JavaMail组件在使用JavaMail发送邮件之前,先来看一下在发送邮件过程中主要使用到的几个类以及它们的用处和用法!1、 javax.mail.Session类Session定义了一个基本的邮件会话,所有的基于JavaMail的程序都至少需要一个或全部的对话目标。Session对象需要一个java.util.Properties对象得到类似邮件服务器、用户名、密码这样的信息,Session的构造函数是私有的,你可以通过getDefaultInstance()方法来取得一个单一的可以被共享的默认的Session,如: Properties props=new Properties();.Session session = Session.getDefaultInstance(props, null); 或者,可以使用getInstance()方法来创建一个唯一的Session如: Properties props=new Properties();.Session session=Session.getInstance(props,null);在多数情况下,整个应用中使用一个共享Session已经足够了;、javax.mail.Message类创建了Session 对象以后,那么下面就要创建essage对象来发送Session., Message是一个抽象类,再大部分应用中可以使用它的子类ernet.MimeMessage.可以用如下的方法创建一个Message; Message newMessage = new MimeMessage(sendMailSession); 一旦得到了Message,就可以设置它的各个部分。设置内容的基本的机制是使用setContent方法;message.setContent(“E-mail Content”,”text/plain”).如果你能够明确的使用MimeMessage来创建Message,并且只是使用普通的文本(plain text),那么也可以使用setText()方法。setText()方法只需要设置具体的内容,它默认的Mime类型是text/plain;message.setText(“E-mail Content”);对于普通文件类型的邮件,有一种机制是首选message.setText(“Email Content”)的设置内容的方法,如果创建起他类型的Message,比如Html类型的Message,那么还是需要使用前者message.setContent(“Email Content”,”text/html”);设置主题,使用setSubject()方法:message.setSubject(“subject”);3、javax.mail.Address类当你已经创建了Session以及Message对象以后,并且已经为Message填充了相应的内容,那么接下来就要给邮件添加一个地址了,就像Message一样,Address也是一个抽象类,可以使用它的一个子类ernetAddress. 创建一个地址非常简单,如下语句:Address address=new InternetAddress(“”);如果希望在出现邮件地址的地方显示一个名称,那么只需要再多传一个参数。Address address=new InternetAddress(,”mxmjame”);除此之外,需要为Message的from以及to字段创建address对象,为了识别发送者,使用setFrom()和setReplyTo()方法Message.setFrom(address);如果你的message需要显示多个from地址 ,可以使用addFrom()方法:Address address=.;Message.addFrom(address);为了辨识Message的收件人,需要使用setRecipient()方法,这个方法除了address参数之外,还需要一个Message.RecipientType();message.addRecipient(type,address);Message.RecipientType有几个预先定义好的类型Message.RecipientType.To 收件人Message.RecipientType.CC 抄送Message.RecipientType.BCC 暗送如果你有一封邮件,需要发给你的Manager,同时还要发给你的几位同事,那么你可以这样来达到目的:Address toAddress=new InternetAddress(“”)Address ccAddress=New InternetAddress(“”),New InternetAddress(“”)Message.addRecipient(Message.RecipientType.To,toAddress);Message.addRecipient(Message.RecipientType.CC,ccAddress);、javax.mail.Transport类最后一部,需要使用一个transport类来完成发送, 邮件的传输只有送出或受到两种状态。JavaMail将这两种不同状态描述为传输和储存。传输将送出邮件,而储存将收取邮件。 Transport是一个抽象类,你可以调用它的静态的send()方法来发送;Transport.sent(message);或者你也可以从Session中为所使用的协议取得一个指定的实例;Transport transport; transport = sendMailSession.getTransport(smtp); 经过以上的详细介绍,要使用JavaMail发送一封普通的邮件就变得相当的容易了,以下是我做的一个实例;三、基于JavaMail组件发送邮件的简单实例在项目开发之前必须添加JavaMail组件相关的包,这主要为activation.jar、mail.jar;有条件的话可以到sun公司的官方网站上()进行下载()、新建一个项目()、导入相应的包文件()、在该项目中添加一个邮件处理的类MailUtil.java,源代码如下:package testimport java.io.File;import java.io.IOException;import java.io.StringWriter;import .URLEncoder;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.Properties;import java.util.Random;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.NoSuchProviderException;import javax.mail.Session;import javax.mail.Transport;import ernet.InternetAddress;import ernet.MimeMessage;import javax.mail.Address;public class MailUtil static int port = 25; /smtp端口 static String server = ;/smtp服务器地址static String from = mxmjame_008163.com;/发送者static String user = mxmjame_008; /发送者用户名static String password = *;/发送者密码public static boolean sendEmail(String email, String subject, String body) try Properties props = new Properties(); /smtp参数设置 props.put(mail.smtp.host, server);props.put(mail.smtp.port, String.valueOf(port);props.put(mail.smtp.auth, true);/smtp是否需要认证 Transport transport = null;Session session = Session.getDefaultInstance(props, null);transport = session.getTransport(smtp);transport.connect(server, user, password);MimeMessage msg = new MimeMessage(session); /设置发送时间msg.setSentDate(new Date(); /设置发送人地址InternetAddress fromAddress = new InternetAddress(from);msg.setFrom(fromAddress); /设置收件人地址InternetAddress toAddress = new InternetAddress1;toAddress0 = new InternetAddress(email);msg.setRecipients(Message.RecipientType.TO, toAddress); /设置主题信息msg.setSubject(subject, UTF-8); /设置内容信息msg.setText(body, UTF-8);msg.saveChanges(); /完成邮件发送transport.sendMessage(msg, msg.getAllRecipients(); catch (NoSuchProviderException e) e.printStackTrace(); catch (MessagingException e) e.printStackTrace();return true;()、添加发送邮件的页面sendMail.jsp base href= My JSP index.jsp starti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论