Java邮件开发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 Transport:javax.mail.Transport类是发送邮件的核心API,他的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP,客户端程序创建好Message对象后,只需要使用邮件发送API得到Transport对象,然后把Message对象传递给Transport对象,并调用它的发送方法,就可以把邮件发送给指定了SMTP服务器。
MimeMessage类:表示整封邮件。
MimeBodyPart类:表示邮件的一个MIME消息。
MimeMultipart类:表示一个由多个MIME消息组合成的MIME消息。
简单的一些说明:
1复杂邮件和简单邮件一样,都是使用MimeMessage队向来表示整封邮件的。
2对于复杂邮件的邮件体,不能再简单的调用MimeMessage.setText方法生成,而是要用一个MimeMultipart对象表示,并通过MimeMessage.setContent(Multipart mp)方法设置到MimeMessage对象。
我们可以从SUN公司的网站中下载mail.jar,现在的版本是1.4,下载以后,解压即可,然后我们将mail.jar导到环境变量中,就好了。当然,你也可以不必进行倒入,只要能够找到相应的文件,也可以的。这些是Java基础的内容,这里不再多讲。
JavaMail API按其功能划分通常可以分为三类:
创建和解析邮件内容的API。
publicstaticvoidmain(String [] args)throwsIOException{
System.out.print("请输入用户名:");
更多的内容http://www.gaopincaipiao.com/en/
BufferedReader in=newBufferedReader(newInputStreamReader(System.in));
3 MimeMultipart对象用来组合多个MIME消息,其中的每个MIME消息分别用一个MimeMultipart.addBodyPart(BodyPartΒιβλιοθήκη Baidupart)方法加入到MimeMultipart对象中。
4如果MimeBodyPart对象表示的MIME消息又是一个MIME组合消息,那么它的内容有需要使用一个MimeMultipart对象来表示,并通过MimeBodyPart.setContent(Multipart mp)方法设置到MimeBodyPart对象中。与代表整封邮件的MimeMultipart对象一样,这个MimeMultipart对象中的每一个组成单元也分别有一个MimeBodyPart对象表示。
System.out.println("编码后的密码为:"+encoder.encode(password.getBytes()));
}
}
输入用户名和密码以后,会把加密后的用户名和密码给出来,然后我们打开命令提示符:
这个指令的意思,就是连接到163.com 25是段口号。
返回220,表示成功连接。
更多的内容http://www.gaopincaipiao.com/en/
SUN公司提供了对JAF的下载,朋友们可以到网上去下载,会得到一个activation.jar的文件,然后将其导入环境变量。
第五章创建邮件内容
基本原理:JavaMail API使用javax.mail.Message类来表示一封邮件,Message类是一个抽象类,应用程序需要使用其实现子类java.mail.internet.MimeMessage来创建Message类的实例对象。如果要创建一封致包含文本的简单邮件,那么只需要使用到MimeMessage类就可以了。但如果要创建一封包含内嵌资源的或多个附件的复杂邮件,那么则需要同时使用到JavaMail API中的MimeMessage,javax.mail.internet.MimeBodyPart和javax.mail.internet.MimeMultipart等类。
3 Store:javax.mail.Store类是接收邮件的核心,他的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3。客户端程序接收到邮件时,只需要有事邮件接收API得到Store对象的接收方法,就可以从制定的POP3服务器获得邮件数据,并把这些数据封装带表示邮件的Message的对象中。
Content-Base:用来为内迁资源设置一个基准路径。
以上的内容,都不很难,我们在这里,也只是做一下简单的介绍,如果你想要真正深刻的了解这部分内容,可以找一本相关书籍(网上也有很多),因为大部分都是概念性质的,素以在这里我们不再多说,对于这些基本概念的介绍,到此为止。
第四章JavaMail API
MIME协议用于定义复杂邮件的格式,它可以表达多段平行的文本内容和非文本内容。例如,在邮件中插入附件。
MIME邮件的组织结构:
Content-Type:
具体资源的数据类型和组合消息的组合关系,都是通过消息头中的Content-Tpe头字段来指定的。其内容以“主类型/子类型”的形式出现,主类型有:text,image,audio,video,application,multipart,message等。每个主类型下面都有很多个子类型,比如text下面就有plain,htmlm,xml,css等子类型。Multipart主类型用于表示MIME组合关系,它是MIME协议中最重要的一种类型。
Multipart/alternative:选择组合类型。
其他头字段:
Content-Transfer-Encoding:用于指定编码方式。
Content-Disposition:用于指定邮件阅读程序处理数据内容的方式。
Content-ID:用于组合消息中的内迁资源制定的一个唯一表示号。
Content-Location:用来为内迁资源设置一个URI地址。
发送邮件的API。
接收邮件的API。
核心类:
1 Message:javax.mail.Message是创建和解析邮件的核心类,他的实例代表一封电子邮件。客户端程序发送邮件时,首先使用创建邮件JavaMail API创建出封装了邮件数据的Message对象,然后把这个对象传送给发送API发送。客户端接收邮件时,邮件接收API把收到的邮件数据封装在Message类的实例对象中,客户端程序再使用邮件分析API从这个对象中介析出接收到的邮件数据。
访问数据源中的数据;
获知数据源的数据类型;
获知可对数据进行的各种操作;
用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象。
例如,如果要使用JAF处理一个图片文件,那么应用程序通过JAF提供的接口就可以得到队图片文件进行操作的输入输出流,图片文件的MIME类型,JAF为图片文件提供的操作方法(如查看,毕激活打印图片等等),应用程序调用这些操作时,JAF就会调用相应的处理模块对数据进行处理。
Quit<CRLF>
好的,我们来看一个例子,通过这些指令,来操纵邮箱。
通过上面的指令,就会登录到邮箱。
在上图中,retr命令后面显示的内容,就是邮件的相关信息和内容。至于其它的一些指令,在这里不再一一讲解,大家有兴趣,可以到网上找一些资料。
IMAP协议:对POP3协议的一种扩展,定义了邮件客户端软件与邮件服务器的通信规则。
一封MIME邮件中的MIME消息可以有三种组合关系:混合,关联,选择。对应的MIMe类型如下:
Multipart/mixed:表示消息体中的内容是混合组合类型,可以是文本,声音和附件等不同邮件内容的混合体。
Multipart/related:表示消息体中的内容是关联(依赖)组合类型,表示消息体中的某些内容,依赖另外的资源。
更多的内容http://www.gaopincaipiao.com/en/
这样,我们就发完了一封邮件,你可以用自己的账户发一封信,然后查看一下,在这里不再啰嗦。
POP3协议:邮件服务提供商专门为每个用户申请的电子邮箱提供了邮件存储空间。
命令:
User<sp>username<CRLF>
Pass<SP>password<CRLF>
Apop<sp>name,digest<CRLF>
Stat<CRLF>
Uidl<sp>msg#<CRLF>
List<SP>[msg#]<CRLF>
Retr<sp>msg#<CRLF>
Dele<sp>msg#<CRLF>
Rset<CRLF>
Top<sp>msg#<sp>n<CRLF>
Noop<CRLF>
更多的内容http://www.gaopincaipiao.com/en/
第三章邮件的组织结构
如同上图,体现了邮件的基本格式。相信大家可以很轻松的看懂大的内容,我在这里就不再啰嗦了。
MIME协议:由于网络的迅猛发展,人们早已经不再满足于电子邮件仅仅是用来交换文本信息,更希望可以使用电子邮件来交换更为丰富多彩的内容,比如说图片。但是,由于这些内容,比如说图片,都是非ASCII码的二进制数据,而我们原来的邮箱格式,只是用于表达纯文本信息,所以要发送这些内容的话,必须先将其进行编码。为了解决这个问题,人们提出了MIME协议。
JavaMail API是SUN公司为方便Java开发人员应用程序中实现邮件发送和接收功能而提供的一套标准的开发包。他支持一些常用的邮件协议,如SMTP,POP3,IMAP和MIME等。开发人员使用JavaMail API不便些邮件处理程序时,无须考虑邮件协议的底层实施细节,只要调用JavaMail开发包中相应的API类就可以了。JavaMail API封装在一个名为mail.jar的文件中,它是开发JavaMail应用程序时所必须使用的核心包。
String username=in.readLine();
System.out.print("请输入密码:");
String password=in.readLine();
BASE64Encoder encoder=newBASE64Encoder();
System.out.println("编码后的用户名:"+encoder.encode(username.getBytes()));
Rcpt<SP>to:<forward-path><CRLF>
Data<CRLF>
Quit<CRLF>
我们来看一个例子:
因为我们的用户名和密码,是需要加密的,所以我们先把用户名和密码加密,程序如下:
importjava.io.*;
importsun.misc.BASE64Encoder;
publicclassBase64Util {
JAF简介
JAF(JavaBeansActivationFramework,JavaBeans激活框架)是一个专用的数据处理框架,他用于封装数据,并为应用程序提供访问和操作数据的接口。JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIMe类型,并用这些数据生成MIME消息中的消息体和消息类型。
4 Session:javax.mail.Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络联接的会话信息,如邮件服务器的主机名,端口号,采用的邮件发送和接收协议等。Session对象根据信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象是提供信息支持。
JAF的主要作用在于让Java应用程序知道如何对一个数据源进行察看,编辑和打印等操作。大家知道,在MS Word程序中可以打开一片Word文档中嵌套的Visio图片,JAF就是要让Java程序能够完成类似的技术应用,让应用程序知道数据源支持哪些操作,每个操作分别调用哪个处理模块。对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成以下操作:
第二章邮件传输协议
SMTP协议:简单邮件传输协议,它定义了邮件客户端于SMTP服务器之间,以及两台SMTP服务器之间的通信规则。SMTP协议的通信双方采用一问一答的命令/响应形式进行对话。
命令:
Ehlo<SP><domain><CRLF>
Auth<SP><para><CRLF>
Mail<SP>from:<reverse-path><CRLF>
相关文档
最新文档