(一)JavaMail 简介

来源:互联网 发布:纵向加密 数据网 编辑:程序博客网 时间:2024/05/01 09:17

一JavaMail

      JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。
 
二 邮件协议


     SMTP:用于发送电子邮件的传输协议;
     POP3:用于接收电子邮件的标准协议;
     IMAP:互联网消息协议,是POP3的替代协议。
     除JavaMail服务提供程序之外,JavaMail还需要JAF(JavaBeans Activation Framework)来处理不是纯文本的邮件内容,这包括MIME(多用途互联网邮件扩展)、URL页面和文件附件等内容


    【SMTP】
    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。


    【POP】
    POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。现在常用的是第三版 ,所以简称为 POP3。
    POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。
    POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。


    【IMAP】
    IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。现在常用的是第四个版本,即IMAP4.
    IMAP4协议与POP3协议一样也是规定个人计算机如何访问网上的邮件的服务器进行收发邮件的协议,但是IMAP4协议同POP3协议相比更高级。IMAP4支持协议客户机在线或者离开访问并阅读服务器上的邮件,还能交互式的操作服务器上的邮件。IMAP4协议更人性化的地方是不需要像POP3协议那样把邮件下载到本地,用户可以通过客户端直接对服务器上的邮件进行操作(这里的操作是指:在线阅读邮件 在线查看邮件主题 大小 发件地址等信息)。用户还可以在服务器上维护自己邮件目录(维护是指移动)新建 删除重命名共享 抓取文本 等操作)。IMAP4协议弥补了POP3协议的很多缺陷,,由RFC3501定义。本协议是用于客户机远程访问服务器上电子邮件,它是邮件传输协议新的标准。


   【MIME】不是一种协议

     MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。


三 Java Mail 流程

    【1. 设置邮件服务器环境】

          Java Mail 是一组API 接口, 所以再开发时需要指定实现厂商。因此,JavaMail 开发需要设置一些服务器连接参数,如如服务器地址、端口号、用户名、协议参数等。假定我们采用163 邮箱服务器作为实现商,我们要用自己的程序发送一封邮件,那么等发送成功后,我们直接的登录163邮箱,我们在发件箱可以看到刚刚自己发的邮件 。 也就是说,其实我们的应用相当于 163 邮件服务器的一个前端而已, 所以163服务器有我们邮件发送的所有记录。

        既然相当于一个前端应用,那么,就需要配置服务器地址,端口号,协议等参数。 Java Mail API 提供了 Properties 类来设置参数, 对于STMP协议的常见参数如下:

      属性名属性类型属性描述mail.smtp.hostStringSMTP服务器地址, 如:smtp.163.commail.smtp.portintSMTP服务器端口号,默认25mail.smtp.authbooleanSMTP服务器是否需要用户验证,默认为falsemail.smtp.userStringSMTP服务器登录用户名mail.smtp.passwordStringSMTP服务器登录密码mail.smtp.timeoutintSMTP服务器连接超时。。。。。。。。。

其他几个协议也有类似的一系列属性,如POP3的mail.pop3.host、mail.pop3.port以及IMAP的mail.imap.host、mail.imap.port等。


    【2. 设置 认证授权】

         由于我们相当于做的前端开发, 所以一般都需要进行用户登录, 只是这种登录方式不是常规的那种先登录再操作,而是将登录信息作为参数,直接在进行邮件操作的时候一起传给服务器。 Java Mail 中进行认证授权参数相关类为:Authenticator  和 Session


    【3. 发送邮件】

          Java Mail 发送邮件通过 Transport 类, Transport.send(Message msg) 方法。


    【4. 读取邮件】

          用到再研究吧。。。

0 0
原创粉丝点击