初篇——目录(JavaMail)

结构图                                                                             

初篇——目录(JavaMail)_第1张图片

目录                                                                                

      邮件的知识体系由三部分组成,邮箱服务器,邮件程序,邮件协议。

      邮箱服务器一般都是由公司的网络工程师搭建完成,基本上与程序员没有关系。但是笔者还是亲自尝试,使用Apache James搭建一个简单的邮箱服务器。

     邮件程序指通过编程来完成发送邮件,接收邮件等相关功能,这里笔者介绍的是Java Mail,这也是本文的重点。当然并不是只有Java才能实现,其他编程语言也会有相应的功能。

     Java Mail 的知识体系由以下三个部分组成:

  • 配置文件:配置文件包含一些重要的信息,其中连接邮箱服务器的相关配置是必须的,例如host邮箱服务器的地址,user邮箱账户,password账户密码,protocol邮箱服务器使用的协议,port邮箱服务器使用的端口号(默认为25)。还有一些常用的配置,如字符集,过期时间,是否打印详细的信息等等。
  • 核心对象:
  1. Provider类似于驱动,提供对特定协议的支持,例如Java Mail 支持SMTP,IMAP,POP3,GMail,其他协议类型的邮件无法发送。 要想发送其他邮件类型,需要使用特殊的Provider,需要下载特定的jar包。
  2. Session连接时创建一个会话,用户断开连接后,session对象会相应被销毁。
  3. Transport传输通道,用来发送邮件,可以在客户端与邮箱服务器之间传输邮件数据。
  4. URLName: 类似于URL,它表示邮箱文件的资源定位符,格式为protocol://username:password @ host/ folderName,其中password不是必需的。
  5. Address: 表示一个邮箱账户地址。它有三个属性,其中address表示邮箱账户,personal表示邮件的标题,charset 表示标题的字符集。Address有两种类型,InternetAddress和NewsAddress。InternetAddress主要用来表示普通邮件类型的账户。NewsAddress表示新闻邮件类型的账户。
  6. Message: 表示一封邮件。邮件有种类,信息,操作三个部分。

    Message是一个抽象类,MIMEMessage继承Message表示内容为MIME类型的邮件,如果内容为其他类型,需要实现自定义的类继承Message。

    邮件由Header和Content两部分组成,其中Header包含一些基本的信息,例如发送邮件的时间,邮件标题,邮件接收人等等。Content表示邮件的内容,它可以是字符串,也可以是一个MultiPart复杂类型,MimeMultiPart表示Mime类型的复杂类型。MultiPart可以包含一个或者多个Multipart,BodyPart。而一个BodyPart又可以包含一个或者多个Multipart,Bodypart。两者的关系类似于JSON中的JSONArray与JSONObject,可以互相嵌套。每一个BodyPart又由三部分组成,Attribute,Header,Content。其中Header和Content的含义大体相同。Attribute包含BodyPart的基本信息,例如size表示大小,description表示描述。

    操作有创建邮件,发送邮件,接收邮件,删除邮件,设置标签,监听邮件事件等等。其中发送邮件可以发送带附件的邮件,也可以对邮件的内容进行加密,转码等操作。
  7. Folder: 表示邮件的文件夹。文件夹有属性,状态,文件夹自身操作与文件夹下包含的邮件操作。文件夹有两种状态,关闭和打开,它是某些文件夹操作的前提,例如删除邮件只能在文件夹关闭的状态下才能进行。文件夹属性有名称,权限等信息。文件夹操作有新增,删除,重命名,移动,复制等操作。文件夹中的邮件操作有新增,拷贝,删除,get&set,搜索,标记等
  8. MailEvent表示邮件的事件。邮件的事件类型有六种,ConnectionEvent,表示连接相关的事件;FolderEvent,当创建,删除,重命名邮件文件夹时会触发此事件;MessageChangedEvent,表示邮件内容被改变,或者设置标签时会触发此事件;MesageCountEvent,当邮件数量改变时,会触发此事件,例如新增邮件,删除邮件;StoreEvent,没有理解;TransportEvent,邮件传输完成,或者是传输失败之后会触发此事件。
  • 功能:
  1. 配置文件:介绍配置文件内容各项的含义。

  2. 发送邮件:发送简单类型的邮件,发送内容带有图片,发送内容具有特定格式的邮件,发送带有附件的邮件。

  3. 接收邮件:获取邮件相关的信息,对邮件或邮件文件夹进行相关的操作。

  4. 监听邮件:处理邮件事件,例如当收到新邮件时发送提示消息,传输失败之后重新发送邮件等等。

     邮件的功能不止以上四种,笔者随时用到会随时总结。

     邮件协议通常指SMTP,IMAP,POP 3等协议,了解这些协议的概念和意义。对于邮件的开发来说,了解这些协议不是必须的。笔者目前并不了解这些协议,之后会补充。

参考资料                                                                           

   API:https://javamail.java.net/nonav/docs/api/

   书籍:JavaMail API(O'REILLY),下载地址:http://freepdf-books.com/javamail-api/

   Jar包下载地址(Maven):http://mvnrepository.com/artifact/javax.mail/javax.mail-api

         

你可能感兴趣的:(初篇——目录(JavaMail))