基于JavaMail的常用类详细介绍_java

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

用法:

复制代码 代码如下:

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

复制代码 代码如下:

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);  

复制代码 代码如下:

Session sendMailSession; 
   sendMailSession = Session.getInstance(props, null); 

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

用法:

复制代码 代码如下:

Transport transport;  
  transport = sendMailSession.getTransport("smtp"); 

复制代码 代码如下:

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);  

 

复制代码 代码如下:

Message newMessage = new MimeMessage(sendMailSession);  
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");  

 

复制代码 代码如下:

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地址,用户名和密码登录你的邮箱  

复制代码 代码如下:

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);  

复制代码 代码如下:

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 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的内容. 

复制代码 代码如下:

    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对象  

复制代码 代码如下:

    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  

复制代码 代码如下:

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("/JAVA/UploadFiles_6441/200703/20070320105128501.gif");  

时间: 2024-08-02 02:24:27

基于JavaMail的常用类详细介绍_java的相关文章

Java中的Object类详细介绍_java

理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法. 注意: Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为f

基于JavaMail API收发邮件的方法_java

本文实例讲述了基于JavaMail API收发邮件的方法.分享给大家供大家参考.具体如下: 1.JavaMail API按其功能划分通常可分为如下三大类 (1)创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件. (2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议. (3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个

JAVA和JAVAC 命令详细介绍_java

JAVA和JAVAC 命令 javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点. javac -classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定. -sourcepath, 设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件). 所以一个完整的jav

Docker 存储驱动详细介绍_java

Docker 存储驱动详细介绍 最近做项目,期间对Docker 存储驱动不会,于是在网上找资料,并解决了,这里就记录下. 目的 理解docker的存储方式 docker的image和container在host上的目录结构 docker image和container的内容与配置不同存储 Docker是一个开源的应用容器引擎,主要利用Linux内核namespace实现沙盒隔离,用Cgroup实现资源限制.Docker用于统一开发和部署的轻量级 Linux 容器,试图解决"依赖地狱"问

Java类加载基本过程详细介绍_java

Java类加载基本过程详细介绍 基本过程: 根据类的全限定名称加载定义类的二进制字节流. 将字节流代表的静态存储结构转化为方法区的运行时数据结构 内存中生成一个代表这个类的java.lang.Class对象,作为方法去这个类的各种数据访问入口  数组类本身不通过类加载器创建,由java虚拟机直接创建,数组类的元素类型由类加载器加载. 数组类的元素类型:数组去掉所有维度后的类型,  文件格式验证: 0xCAFEBABY 魔数开头: 主次版本号当前虚拟机可处理: 常量类型: 索引执行类型: utf8

Java 高并发五:JDK并发包1详细介绍_java

在[高并发Java 二] 多线程基础中,我们已经初步提到了基本的线程同步操作.这次要提到的是在并发包中的同步控制工具. 1. 各种同步控制工具的使用 1.1 ReentrantLock ReentrantLock感觉上是synchronized的增强版,synchronized的特点是使用简单,一切交给JVM去处理,但是功能上是比较薄弱的.在JDK1.5之前,ReentrantLock的性能要好于synchronized,由于对JVM进行了优化,现在的JDK版本中,两者性能是不相上下的.如果是简

JAVA JNI函数的注册过程详细介绍_java

JAVA JNI函数的注册过程详细介绍 我们在java中调用Native code的时候,一般是通过JNI来实现的,我们只需要在java类中加载本地.so库文件,并声明native方法,然后在需要调用的地方调用即可,至于java中native方法的具体实现,全部交给了Native层.我们要在java中正确地调用到本地代码中对应函数的前提是什么呢?答案就是通过一定的机制建立java中native方法和本地代码中函数的一一对应关系,那么这种机制是什么呢?就是JNI函数的注册机制. JNI函数的注册有

Java基础-Java语言的Socket类详细介绍

线性表,链表等是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中. Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele

IISExpress 配置允许外部访问详细介绍_java

 IISExpress 配置允许外部访问详细介绍 1.找到IISExpress的配置文件,位于 <文档>/IISExpress/config文件夹下,打开applicationhost.config,找到如下代码: <site name="WebSite1" id="1" serverAutoStart="true"> <application path="/"> <virtualDi