邮件的发送和接收.ppt

上传人:wuy****n92 文档编号:66690936 上传时间:2022-12-18 格式:PPT 页数:106 大小:953.50KB
返回 下载 相关 举报
邮件的发送和接收.ppt_第1页
第1页 / 共106页
邮件的发送和接收.ppt_第2页
第2页 / 共106页
点击查看更多>>
资源描述

《邮件的发送和接收.ppt》由会员分享,可在线阅读,更多相关《邮件的发送和接收.ppt(106页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第13章章电子邮件的发送和接收电子邮件的发送和接收电子邮件(电子邮件(electronicmail,简称,简称e-mail)是因特网上使用最多的一种应用,它)是因特网上使用最多的一种应用,它为用户在因特网上设立了存放邮件的电子邮为用户在因特网上设立了存放邮件的电子邮箱,发信人可以随时将电子邮件发送到收信箱,发信人可以随时将电子邮件发送到收信人的电子邮箱,收信人也可以随时上网读取,人的电子邮箱,收信人也可以随时上网读取,发信人与收信人以异步的方式通信。发信人与收信人以异步的方式通信。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntro

2、ductiontoDatabaseSystem第第13章章电子邮件的发送和接收电子邮件的发送和接收邮件传输原理1、电子邮件系统的构成一个电子邮件系统包括三个主要的构件,即用户代理,邮件一个电子邮件系统包括三个主要的构件,即用户代理,邮件消息传输代理消息传输代理(邮件服务器),和电子邮件使用的协议。如,和电子邮件使用的协议。如图所示:图所示:Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem第第13章章电子邮件的发送和接收电子邮件的发送和接收2、电子邮件系统的实现电子邮件系统的实现Netw

3、ork ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1E-mail协议简介协议简介邮件服务器按照提供的服务类型,可以分为发送邮件服务器(简称发送服务器)和接收邮件服务器(简称接收服务器)。n发送邮件服务器使用邮件发送协议,现在常用的是SMTP,所以通常发送邮件服务器也称为SMTP服务器;n接收邮件服务器使用接收邮件协议,常用的有POP3协议和IMAP协议,所以通常接收邮件服务器也称为POP3服务器或IMAP服务器。Network ProgrammingAnIntroductiontoData

4、baseSystemAnIntroductiontoDatabaseSystem13.1.1SMTP协议简介协议简介SMTP(SimpleMailTransferProtocol),即简单邮件传输协议,是Internet传送E-mail的基本协议,也是TCP/IP协议组的成员。nSMTP协议解决邮件系统如何通过一条链路,把邮件从一台机器传送到另一台机器上的问题。nSMTP协议的特点是具有良好的可伸缩性,这也是它成功的关键。它既适用于广域网,也适用于局域网。nSMTP协议由于非常简单,使得它得到了广泛的运用,在Internet上能够发送邮件的服务器几乎都支持SMTP协议。Network Prog

5、rammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1E-mail协议简介协议简介Network Programming客户机客户机A客户机客户机Bemail服务器服务器ASMTP服务器服务器email服务器服务器BPOP3/IMAP服务器服务器internet1、SMTP传输传输2、SMTP-传输邮件传输邮件3、pop3/IMAP协议协议-接收阅读接收阅读AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.1SMTP协议简介协议

6、简介SMTP协议采用C/S模式,专用于电子邮件的发送,规定了发信人把邮件发送到收信人的电子邮箱的全过程中,SMTP客户与SMTP服务器这两个相互通信的进程之间应如何交换信息。即规定了SMTP的会话过程。用户直接使用的是用于编写和发送的客户端软件,而通常的SMTP服务器运行在远程站点上。客户/服务器之间的通信是通过TCP/IP协议进行的。SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体如下:Network ProgrammingAnIntrodu

7、ctiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.1SMTP协议简介协议简介具体为:(1)建立TCP连接。(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。(3)服务器端以OK作为响应,表示准备接收。(4)客户端发送RCPT命令。(说明收信人的电子邮件地址)(5)服务器端表示是否愿意为收件人接收邮件。(6)协商结束,发送邮件,用命令DATA发送输入内容。(7)结束此次发送,用QUIT命令退出。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件

8、的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.2POP3协议简介协议简介POP3(PostOfficeProtocol3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循

9、POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.3IMAP协议简介协议简介InternetMailAccessProtocol互联网邮件访问协议。IMAP协议它的主要作用是邮件客户端(例如MSOutlookExpress)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。它与POP3协议的主要区别

10、是主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。用户可以通过浏览信件头来决定是否收取、删除和检索邮件的特定部分,还可以在服务器上创建或更改文件夹或邮箱,它除了支持POP3协议的脱机操作模式外,还支持联机操作和断连接操作。它为用户提供了有选择的从邮件服务器接收邮件的功能、基于服务器的信息处理功能和共享信箱功能。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.4MIME简介简介nMIME(MultipurposeInternetMailE

11、xtensions,多用途Internet邮件扩充标准)不是邮件传输协议,而是对邮件格式所作的规范。它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。nMIME规定了用于表示各种各样的数据类型的符号化方法。MIME是通过标准化电子邮件报文的头部的附加领域(fields)而实现的;这些头部的附加领域,描述新的报文类型的内容和组织形式。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.4MIME简介简介Network ProgrammingAn

12、IntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.1.4MIME简介简介内容类型(Content-Type),这个头部领域用于指定消息的类型type有下面的形式。Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;Application:用于传输应用程序数据或者二进制数据;Message:用于包装一个E-mail消息;Image:用于传输静态图片数据;Audio:用于传输音频或者音声数据;Video:用于传输

13、动态影像数据,可以是与音频编辑在一起的视频数据格式。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2JavaMailAPI简介简介SUN公司制定了JavaMailAPI,它封装了按照各种邮件通信协议,如IMAP、POP3和SMTP,与邮件服务器通信的细节,为Java应用程序提供了收发电子邮件的公共接口,参见图Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2Jav

14、aMailAPI简介简介JavaMailAPI主要位于javax.mail包和中,图为其中主要类的类框图。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2JavaMailAPI简介简介1.类:表示邮件会话,是JavaMailAPI的最高层入口类。nSession类定义了基本的邮件会话。就像Http会话那样,我们进行收发邮件的工作都是基于这个会话的。Session对象利用了对象获得了邮件服务器、用户名、密码信息和整个应用程序都要使用到的共享信息。nSession类的构造方法是私有

15、的,所以我们可以使用Session类提供的getDefaultInstance()这个静态工厂方法获得一个默认的Session对象:Propertiesprops=newProperties();Sessionsession=Session.getDefaultInstance(props,null);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2JavaMailAPI简介简介2、类:表示接收邮件服务器上的注册用户的存储空间,通过Store类的getFolder()方法,可以

16、访问用户的特定邮件夹。通过javax.mail.Store类可以访问javax.mail.Folder类。我们需要从Session中获取特定类型的Store,然后连接到Store,在连接Store的过程中,极有可能需要用到用户名、密码或者Authenticator。Storestore=session.getStore(imap);Storestore=session.getStore(pop3);store.connect(host,username,password);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroducti

17、ontoDatabaseSystem13.2JavaMailAPI简介简介3、javax.mail.Folder类代表邮件夹,邮件都放在邮件夹中,Folder提供了管理邮件夹及邮件的各种方法在连接到Store后,一个Folder对象即目录对象将通过Store的getFolder()方法被返回,我们可从这个Folder中读取邮件信息:Folderfolder=store.getFolder(INBOX);folder.open(Folder.READ_ONLY);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDa

18、tabaseSystem13.2JavaMailAPI简介简介4、javax.mail.Message类代表电子邮件,封装了实际email消息的所有细节,如标题、发送/接收地址、发送日期等,提供了读取和设置邮件内容的方法。Message是一个抽象类,大多数情况下,我们使用javax.mail.internet.MimeMessage这个子类,该类是使用MIME类型、MIME信息头的邮箱信息。为了建立一个MimeMessage对象,我们必须将Session对象作为MimeMessage构造方法的参数传入:MimeMessagemessage=newMimeMessage(session);mes

19、sage.setFrom(newInternetAddress(from);message.addRecipient(Message.RecipientType.TO,newInternetAddress(to);message.setSubject(HelloJavaMail);message.setText(WelcometoJavaMail);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2JavaMailAPI简介简介5、javax.mail.Address类:邮件地址

20、类,像Message一样,Address类也是一个抽象类,所以我们将使用javax.mail.internet.InternetAddress这个子类。通过传入代表邮件地址的字符串,我们可以建立一个邮件地址类:Addressaddress=newInternetAddress(presidentwhitehouse.gov);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.2JavaMailAPI简介简介6、javax.mail.Transport类:在发送信息时,Transpo

21、rt类将被用到。这个类实现了发送信息的协议(通称为SMTP),此类是一个抽象类,我们可以使用这个类的静态方法send()来发送消息。Transporttransport=session.getTransport(smtp);transport.connect(host,username,password);transport.sendMessage(message,message.getAllRecipients();transport.close();Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDataba

22、seSystem13.2JavaMailAPI简介简介7、javax.mail.Authenticator类:像类那样,JavaMailAPI通过使用授权者类(Authenticator是一个抽象类)以用户名、密码的方式访问那些受到保护的资源,在这里“资源”就是指邮件服务器。下面代码片断中的MyAuthenticator就是一个Authenticator的子类。Propertiesprops=newProperties();Authenticatorauth=newMyAuthenticator();Sessionsession=Session.getDefaultInstance(props

23、,auth);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.3建立建立JavaMail应用程序的开发环境应用程序的开发环境JDK中并不包含JavaMailAPI。为了开发JavaMail应用程序,需要从SUN公司的网站下载JavaMailAPI及其实现的类库,该类库由两个JAR文件组成:mail.jar和activation.jar。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabase

24、System13.3建立建立JavaMail应用程序的开发环境应用程序的开发环境1安装JavaMail为了使用JavaMailAPI,需要从http:/ ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.3建立建立JavaMail应用程序的开发环境应用程序的开发环境2安装JavaBeansActivationFramework从http:/ ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.4创建创建

25、JavaMail应用程序应用程序JavaMail应用程序在初始化过程中需要执行如下步骤。步骤(1)设置JavaMail属性:Propertiesprops=newProperties();”,“smtp”);/指定邮件发送协议,imap);/指定邮件接收协议,);/指定支持SMTP协议的Transport具体类,允许由第三方提供。,);/指定支持IMAP协议的Store具体类,允许由第三方提供。,hostname);/指定采用SMTP协议的邮件发送服务器的IP地址或主机名。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroducti

26、ontoDatabaseSystem13.4创建创建JavaMail应用程序应用程序n步骤(2)调用类的静态方法Session.getDefaultInstance()获得Session实例,该方法根据已经配置的JavaMail属性来创建Session实例:Sessionmailsession=Session.getDefaultInstance(props);n步骤(3)调用Session的getStore(Stringprotocol)方法来获得Store对象,参数protocol指定接收邮件协议:Storestore=mailsession.getStore(imap);步骤(1)把属性

27、设为,因此以上getStore()方法返回类的实例。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.4创建创建JavaMail应用程序应用程序步骤(4)调用Store对象的connect()方法连接到接收邮件服务器。调用connect()方法时,应该指定接收邮件服务器的主机名或IP地址、用户名和口令。store.connect(hostname,username,password);Network ProgrammingAnIntroductiontoDatabaseSystem

28、AnIntroductiontoDatabaseSystem13.4创建创建JavaMail应用程序应用程序获得了Store对象后,就可以通过它来访问邮件服务器上的特定邮件用户了。通常会对邮件用户执行以下操作。操作(一)创建并发送邮件:/创建邮件msg=newMimeMessage(mailsession);InternetAddresstoAddrs=,false);/设置邮件接收者,toAddrs);/设置邮件的主题msg.setSubject(hello);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoD

29、atabaseSystem13.4创建创建JavaMail应用程序应用程序/设置邮件的发送者msg.setFrom(new);/设置邮件的正文msg.setText(Howareyou);/发送邮件Transport.send(msg);Transport的静态方法send(Message)负责发送邮件服务器,邮件发送协议由属性指定,邮件发送服务器由属性指定。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.4创建创建JavaMail应用程序应用程序操作(二)打开inbox邮件夹收

30、取邮件:/获得名为“inbox”的邮件夹Folderfolder=store.getFolder(inbox);/打开邮件夹folder.open(Folder.READ_ONLY);/获得邮件夹中的邮件数目System.out.println(Youhave+folder.getMessageCount()+messagesininbox.);/获得邮件夹中的未读邮件数目System.out.println(Youhave+folder.getUnreadMessageCount()+unreadmessagesininbox.);在IMAP协议中,inbox邮件夹是邮件用户的保留邮件夹,用

31、户不允许删除该邮件夹,邮件服务器把所有接收到的新邮件都存在该邮件夹中。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.4创建创建JavaMail应用程序应用程序操作(三)从邮件夹中读取邮件:/从邮件夹中读取第一封邮件Messagemsg=folder.getMessage(1);(-thefirstmessageininbox-);/获得邮件的发送者、主题和正文System.out.println(From:+msg.getFrom()0);System.out.println(

32、Subject:+msg.getSubject();System.out.println(Text:+msg.getText();Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.5身份验证身份验证n在实际应用中,往往希望在连接邮件服务器时,弹出一个对话框,提示用户输入用户名和口令。n为了达到这一效果,需要按照以下步骤创建和使用类:n(1)创建一个类的子类(假定名为MailAuthenticator),实现getPasswordAuthentication()方法。n(2)创建Ma

33、ilAuthenticator对象,并且把它作为参数传给Session的getDefaultInstance()方法:Authenticatorma=newMailAuthenticator();Sessionsession=Session.getDefaultInstance(props,ma);n(3)连接到接收邮件服务器时,把用户名和口令设为null:store.connect(receiveHost,null,null);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.5

34、身份验证身份验证Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.6URLName类类n类表示URL的名字,URLName类与类的区别在于:nURLName类不尝试连接目标地址。构造URLName对象时,无需指定协议处理器。nURLName类可以表示非标准的URL地址。比如URLName对象可以表示接收邮件服务器上的特定邮件夹,形式为:协议名:/用户名:口令主机:端口/邮件夹Network ProgrammingAnIntroductiontoDatabaseSystemAnInt

35、roductiontoDatabaseSystem13.6URLName类类nURLName类中包括以下getXXX()方法:ngetProtocol():获得URL名字中的协议。ngetHost():获得URL名字中的主机。ngetUsername():获得URL名字中的用户名。ngetPassword():获得URL名字中的口令。ngetFile():获得URL名字中的文件名或者邮件夹名Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.6URLName类类nURLName类中包

36、括以下getXXX()方法:ngetProtocol():获得URL名字中的协议。ngetHost():获得URL名字中的主机。ngetUsername():获得URL名字中的用户名。ngetPassword():获得URL名字中的口令。ngetFile():获得URL名字中的文件名或者邮件夹名。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.6URLName类类n例程14-5的MailClientURLName类的init(URLNameurlName)方法从一个URLName

37、对象中获取连接到接收邮件服务器的各种信息。这个URLName对象表示的URL名字为:imap:/admin:1234localhost/publicvoidinit(URLNameurlName)throwsExceptionreceiveProtocol=urlName.getProtocol();receiveHost=urlName.getHost();username=urlName.getUsername();password=urlName.getPassword();Network ProgrammingAnIntroductiontoDatabaseSystemAnIntrod

38、uctiontoDatabaseSystem13.6URLName类类/设置属性Propertiesprops=newProperties();,sendHost);/创建Session对象session=Session.getDefaultInstance(props);/创建Store对象store=session.getStore(receiveProtocol);/连接到邮件服务器store.connect(receiveHost,username,password);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroduc

39、tiontoDatabaseSystem13.7创建和读取复杂电子邮件创建和读取复杂电子邮件如图所示,按照MIME规范,电子邮件包括邮件头和正文两部分。邮件头中包括日期、发送者地址、接收者地址和主题等信息。正文部分可以包括普通文本内容,还可以包括一个或多个附件。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7创建和读取复杂电子邮件创建和读取复杂电子邮件n抽象类表示邮件,它的具体子类为类,它提供了读取和设置邮件中各个部分的getXXX()和setXXX()方法:nsetSubje

40、ct(Stringsubject)方法设置邮件的主题。nsetHeader(Stringname,Stringvalue)方法设置邮件头部的某一项。nsetContent(Objecto,Stringtype)方法设置邮件的正文。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.1邮件地址邮件地址n抽象类表示邮件地址,它的最常用的子类是类。nInternetAddress类表示Internet网上通用的邮件地址,形式为,或者“Admin”。nInternetAddress类提供

41、了一系列get和set方法,用来读取和设置address、personal和charset等属性,例如:ngetAddress():读取address属性。ngetPersonal():读取personal属性。nsetAddress(Stringaddress):设置address属性。nsetPersonal(Stringpersonal):设置personal属性。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.1邮件地址邮件地址n以下两段代码是等价的:Internet

42、Addressaddr=newInternetAddress(,Admin);或者:InternetAddressaddr=newInternetAddress(););addr.setPersonal(Admin);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.1邮件地址邮件地址nMimeMessage类的以下方法用于读取或设置邮件中的地址信息:nAddressgetFrom():读取发送者的邮件地址。nAddressgetRecipients(Message.Recip

43、ientTypetype):读取特定接收类型的邮件地址。nvoidsetFrom(Addressaddress):设置发送者的邮件地址。nvoidsetRecipients(Message.RecipientTypetype,Addressaddresses):设置特定接收类型的邮件地址,参数addresses指定多个接收地址。nvoidsetRecipients(Message.RecipientTypetype,Stringaddresses):设置特定接收类型的邮件地址,参数addresses指定一个接收地址。Network ProgrammingAnIntroductiontoData

44、baseSystemAnIntroductiontoDatabaseSystem13.7.1邮件地址邮件地址nMessage.RecipientType类型的静态常量表示地址类型,包括:n:主接收地址。n:抄送地址。n:广播地址。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.1邮件地址邮件地址n以下程序代码设置了邮件的各项邮件地址:MimeMessagemsg=newMimeMessage(session);InternetAddressfrom=new);Internet

45、Addressto=);InternetAddresscc=newInternetAddress(linda_);InternetAddressbcc=);msg.setFrom(from);,to);,cc);,bcc);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.2邮件头部邮件头部nMimeMessage类的以下getXXX()和setXXX()方法用于读取和设置邮件头部的特定项:nStringgetHeader(Stringname)nvoidsetHeader(S

46、tringname,Stringvalue)n以下两段代码的作用是等价的,它们的作用都是设置邮件的主题:msg.setHeader(subject,hello);或者:msg.setSubject(hello);Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.2邮件头部邮件头部nMimeMessage类的getAllHeaders()方法返回一个包含Header对象的Enumeration对象,每个Header对象表示邮件头部的一项。n以下程序代码遍历邮件头部的所有项:for

47、(Enumeratione=msg.getAllHeaders();e.hasMoreElements();)Headerheader=e.nextElement();System.out.println(header.getName()+:“+header.getValue();Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.3邮件标记邮件标记n多数接收邮件服务器允许邮件包含特定的标记信息,这些标记可以使用户更方便的管理邮件。nJavaMailAPI用类的Flags.Fla

48、g内部类的静态实例来表示标记:n:表示邮件已经回复。该标记由客户程序设置。n:表示邮件已经被删除。该标记由客户程序设置。n:表示刚刚被添加到邮件夹的邮件,即最近一次打开邮件夹时,被添加到邮件夹的邮件。该标记由Folder类的实现来设置,客户程序只能读取该标记。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.3邮件标记邮件标记n:表示邮件已经作了某种标记。客户程序可以设置该标记。n:表示邮件已经被阅读。该标记由JavaMailAPI的实现来设置。当客户程序调用了邮件的getCo

49、ntent()方法时,该邮件被加上标记。客户程序可以修改这个标记。n:表示邮件是草稿。该标记由客户程序设置。n:表示邮件所在的邮件夹支持用户自定义的标记。该标记由接收邮件服务器设置,客户程序只能读取该标记。客户程序可以通过)方法判断邮件夹是否支持用户自定义的标记。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.3邮件标记邮件标记nMimeMessage类提供了三个与标记有关的方法:nvoidsetFlags(Flagsflags,booleanset):设置或取消一组标记。n

50、voidsetFlags(Flags.Flag,booleanset):设置或取消特定标记。nbooleanisSet(Flags.Flagflag):察看是否设置了某个标记。Network ProgrammingAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem13.7.3邮件标记邮件标记n以下两段程序代码是等价的,它们的作用都是为一个邮件设置SEEN和ANSWERED标记:Flagsflags=newFlags();););msg.setFlags(flags,true);或者:msg.setFlags(Flags.Fl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁