毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
JAVA电子邮件接收程序的设计与实现(4)
SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器:二是从某一个服务器传输到另一个服务器。SMTP也是个请求/响应协议,命令和响应都是基于ASCⅡ文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码。SMTP使用TCP协议25号端口监听连续请求。
连接和发送过程如下:[12]
(1)建立TCP 连接。
(2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。
(3)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。
(4)协商结束,发送邮件,用命令DATA发送。
(5)以“.”号表示结束输入内容一起发送出去,结束此次发送,用QUIT命令退出。
2 .2 JavaMail API简介
JavaMail API是一种可选的、能用于读取、编写和发送电子消息的包(标准扩展)。您可使用这种包创建邮件用户代理(Mail User Agent ,MUA) 类型的程序,它类似于Eudora、Pine及Microsoft Outlook这些邮件程序。其主要目的不是像发送邮件或其他邮件传输代理(Mail Transfer Agent,MTA)类型的程序那样用于传输、发送和转发消息[13]。换句话说,用户可以与MUA类型的程序交互,以阅读和撰写电子邮件。MUA依靠MTA处理实际的发送任务。
JavaMail API的设计是为收发信息提供与协议无关的访问。方式是把该API划分成两个部分:
•API的第一个部分是是如何发送和接收独立于提供程序/协议的消息。
•API的第二个部分则使用特定的协议语言,如:SMTP、POP、IMAP以及NNTP等等。如果要让JavaMail API与服务器通信,就需要为之提供这些协议。
JavaMail API中提供了很多用于处理E-mail的类,其中比较常用的有Session(回话)类、Message(消息)类、Address(地址)类、Authenticator(认证方式)类、Transport(传输)类、Store(存储)类和Folder(文件夹)类等7个类。这7个类都可以在JavaMailAPI的核心包mail.jar中找到。
发送、接收邮件的整个流程图如图2.1所示:
图2.1 电子邮件工作流程图
2.3 JavaMail体系结构
要完成消息的交互,需要几方面的支持:邮件发送客户端程序、邮件接收客户端程序、邮件发送服务器和邮件接收服务器,此外,还需要相关的通信协议。
邮件发送客户端程序和邮件接收客户端程序可以是相同的,例如经常使用的微软的Outlook既可以发送邮件,也可以接收邮件。
邮件发送服务器和邮件接收服务器也可以是相同的服务器。在与邮件服务器交互的过程中,主要完成两个动作,把邮件发送到邮件服务器,以及从邮件服务器读取邮件。所以,主要使用两类协议,分别进行邮件的发送和接收。
邮件从发送方到接收方的传递过程(参见图2.2)如下:[14]
(1)邮件发送方通过邮件发送客户端把邮件发送到发送方的邮件服务器,在发送的过程中需要用到SMTP协议。
(2)发送方的邮件服务器把邮件发送到接收方的邮件服务器,使用的协议也是SMTP。
(3)邮件接收方从接收方邮件服务器接收邮件,使用POP3协议或者IMAP协议。
图2.2 SMTP/POP3转发模型图
2.4 JavaMail核心成员
1.Session类
Session 类定义了一个基本邮件会话,是Java Mail API最高层入口类。所有其它类都是经由这个session 才得以生效。Session 对象用 Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序享的其它信息。
2.Message类
当建立了Session对象后,Message类便可以被发送的构造信息体了。大多数情况下,我们使用javax.mail.internet.MimeMessage这个子类,MimeMessage 是个能理解 MIME 类型和头的电子邮件消息,该类是使用MIME类型、MIME信息头的邮箱信息。信息头只能使用US-ASCII字符,而非ASCII字符将通过编码转换为ASCII的方式使用。[15]
共6页:
上一页
1
2
3
4
5
6
下一页
上一篇:
基于互联网的远程控制协议设计与实现
下一篇:
ActiveX漏洞挖掘技术研究+文献综述
java+mysql班级评优系统的设计实现
java+mysql文星酒店客房管理系统设计
java的B2C型电子商务网站管理系统的设计
java+mysql学术会议参会信息系统的设计+源代码
java景点移动导游系统设计与实现
java+sqlserver机场安全监察管理系统的设计
基于Java和HTML5的企业门户...
AES算法GPU协处理下分组加...
压疮高危人群的标准化中...
STC89C52单片机NRF24L01的无线病房呼叫系统设计
浅谈高校行政管理人员的...
上海居民的社会参与研究
酵母菌发酵生产天然香料...
浅论职工思想政治工作茬...
从政策角度谈黑龙江對俄...
提高教育质量,构建大學生...
基于Joomla平台的计算机学院网站设计与开发