第11章 Javamail与在线邮件 Javamail JavaMa并非Java平台的预设API,使用它之前必须预先下载 JavaMail api以及JAF包。 JavaMail下载地址 http:/java.sun.com/products/javamail/indexjsp JAF包全名是 Java Beans Activation framework: http://java.sun.com/products/javabeans/glasgow/jaf.html JSP动态网页新技术
第11章JavaMail与在线邮件 JSP 动态网页新技术 1 JavaMail ➢JavaMail并非Java平台的预设API,使用它之前必须预先下载 JavaMail API以及JAF包。 ➢JavaMail下载地址 http://java.sun.com/products/javamail/index.jsp ➢JAF包全名是JavaBeans Activation Framework: http://java.sun.com/products/javabeans/glasgow/jaf.html
第11章 Javamail与在线邮件 JSP网页发送电子邮件 浏览器端 JSP网页 Javamail 网络 JAF 收信者 发送邮件服务器 接收邮件服务器 JSP动态网页新技术 2
第11章JavaMail与在线邮件 JSP 动态网页新技术 2 JSP网页发送电子邮件 发送邮件服务器 JSP网页 JavaMail JAF 浏览器端 网络 接收邮件服务器 收信者
第11章 Javamail与在线邮件 设定发送邮件服务器与传输协议 指定要寄信的邮件服务器地址,以及使用的通信协议,这个部份由Java类 Properties的方法成员putO所提供 put(Object key, Object value Key代表所要设定的属性种类,如果要设定邮件服务器地址,key的值 必须指定为 maill. host Value则是地址字符串,如果是通信协议,则该值是 mailtransport protocol, value值固定为smtp > Properties对象的设定程序片段,首先建立所需的 Propertie对象 theProperties Properties theProperties= System. getPropertiesO theProperties put("mail host", 127.0.0.1") theProperties put("mail transport protocol",smtp") JSP动态网页新技术 3
第11章JavaMail与在线邮件 JSP 动态网页新技术 3 设定发送邮件服务器与传输协议 ➢ 指定要寄信的邮件服务器地址,以及使用的通信协议,这个部份由Java类 Properties的方法成员put()所提供 。 put(Object key, Object value) – Key 代表所要设定的属性种类,如果要设定邮件服务器地址,key的值 必须指定为mail.host。 – Value则是地址字符串,如果是通信协议,则该值是 mail.transport.protocol,value值固定为smtp。 ➢ Properties对象的设定程序片段,首先建立所需的Properties对象 theProperties Properties theProperties = System.getProperties() ; theProperties.put("mail.host","127.0.0.1") ; theProperties.put("mail.transport.protocol","smtp") ;
第11章 Javamail与在线邮件 收集寄信信息 使用 MimeMessage必须提供的几项重要信息 参数项目 方法 说明 寄信地址 setFromo 寄信人电子邮件地址 收信地址 setrecipients(0收信人电子邮件地址 信件主题 setSubject( 设定邮件主旨 信件内容 setTextO 设定邮件内容 JSP动态网页新技术
第11章JavaMail与在线邮件 JSP 动态网页新技术 4 收集寄信信息 使用MimeMessage必须提供的几项重要信息 参数项目 方 法 说 明 寄信地址 setFrom() 寄信人电子邮件地址 收信地址 setRecipients() 收信人电子邮件地址 信件主题 setSubject() 设定邮件主旨 信件内容 setText() 设定邮件内容
第11章 Javamail与在线邮件 收集寄信信息 MimeMessage的设定 MimeMessage the Message=new MimeMessage(the Session) theMessage setFrom(address) theMessage set recipients (Recipient Type, address) theMessage set Subject(subject) theMessage set Text(content,GB2312) JSP动态网页新技术 5
第11章JavaMail与在线邮件 JSP 动态网页新技术 5 收集寄信信息 MimeMessage的设定: MimeMessage theMessage = new MimeMessage(theSession) ; theMessage.setFrom(address) ; theMessage.setRecipients (RecipientType,address) ; theMessage.setSubject(subject) ; theMessage.setText(content , “GB2312") ;
第11章 Javamail与在线邮件 收集寄信信息 RecipientType代表所要传送的类型。 类型 说明 Message Recipient Type TO 邮件收件人 Message Recipient type. cC 副本收件人 Message Recipient Type BCC 副本密件收件人 JSP动态网页新技术 6
第11章JavaMail与在线邮件 JSP 动态网页新技术 6 收集寄信信息 RecipientType代表所要传送的类型。 类 型 说 明 Message.RecipientType.TO 邮件收件人 Message.RecipientType.CC 副本收件人 Message.RecipientType.BCC 副本密件收件人
第11章 Javamail与在线邮件 关于 Session 建立 MimeMessage对象之前,必须指定一个 Session对象 Session对象由 ljavax.mail Session类的 getDefaultInstancet(方法所建 封裝了 Properties对象所设定的邮件服务器地址以及通信协议信息 Session the Session= Session. get DefaultInstance(theProperties, null) theProperties为 Prperties对象。 the Session建立完成,直接将其传入 MimeMessage的建构式即 Mime Message theMessage new Mime Message(the Session) JSP动态网页新技术 7
第11章JavaMail与在线邮件 JSP 动态网页新技术 7 关于Session ➢ 建立MimeMessage对象之前,必须指定一个Session对象。 ➢ Session对象由javax.mail.Session类的getDefaultInstance()方法所建 立 。 ➢ 封装了Properties对象所设定的邮件服务器地址以及通信协议信息 。 Session theSession = Session.getDefaultInstance(theProperties,null) ; – theProperties为Prperties对象。 – theSession建立完成,直接将其传入MimeMessage的建构式即 可 。 – MimeMessage theMessage = new MimeMessage(theSession) ;
第11章 Javamail与在线邮件 发送邮件 基本的设定完成以后,引用 Transport类的 Sends方法,并且传入 MimeMessage对象 theMessage,即可发送邮件。 Transport. send( theMessage) JSP动态网页新技术 8
第11章JavaMail与在线邮件 JSP 动态网页新技术 8 发送邮件 基本的设定完成以后,引用Transport类的send()方法,并且传入 MimeMessage对象theMessage ,即可发送邮件。 Transport.send(theMessage)
第11章 Javamail与在线邮件 发送附件 电子邮件的附件功能由三个类來完成,分別是 Mime body pa FileDataSource以及 Multipart Mime Body Part用来处理附件内容 FileDataSource是附件的文件来源。 Multipart整合已建立好的 Mime Body Part,传送给 MimeMessage 对象 JSP动态网页新技术
第11章JavaMail与在线邮件 JSP 动态网页新技术 9 发送附件 电子邮件的附件功能由三个类來完成,分別是MimeBodyPart、 FileDataSource以及Multipart。 – MimeBodyPart用来处理附件内容。 – FileDataSource是附件的文件来源。 – Multipart整合已建立好的MimeBodyPart,传送给MimeMessage 对象
第11章 Javamail与在线邮件 发送附件 001 Mime BodyPart theMimeBodyPart new Mime Body Parto 002 FileData Source theFileDataSource= 003 new File Source(the FileName) 004 theMimeBodyPart set DataHandler 005 (new DataHandler(theFileData Source) 006 theMimeBodyPart setFileNamethe Data Source. getNameo) 007 Multipart theMultipart new MimeMultipartO 008 theMultipart add Body Part(the Mime Body Part) 009 theMessage set Content(the Multipart) 第1行建立一个用来处理附件的 Mime BodyPart实体。 第2行则是建立一个用来封装附件文件的 FlleData Source对象,其中所接受的参数 thefileName为附件文件的完整路径名称 第4行引用 setData Handler,将 File DataSource所包含的数据来源储存至对象当中,其 中接受一个 DataHandler类的对象参数 第7行建立 Multipart类的对象,并且引用 addBodyPartO将上述的 Mime Part加入其 中,最后引用 setContent(将附件文件整合进所要发送的邮件当中 JSP动态网页新技术
第11章JavaMail与在线邮件 JSP 动态网页新技术 10 发送附件 001 MimeBodyPart theMimeBodyPart = new MimeBodyPart() ; 002 FileDataSource theFileDataSource= 003 new FileDataSource(theFileName) ; 004 theMimeBodyPart.setDataHandler 005 (new DataHandler(theFileDataSource)) ; 006 theMimeBodyPart.setFileName(theFileDataSource.getName()) ; 007 Multipart theMultipart = new MimeMultipart(); 008 theMultipart.addBodyPart(theMimeBodyPart) ; 009 theMessage.setContent(theMultipart) ; 第1行建立一个用来处理附件的MimeBodyPart实体 。 第2行则是建立一个用来封装附件文件的FileDataSource对象,其中所接受的参数 theFileName为附件文件的完整路径名称 。 第4行引用setDataHandler(),将FileDataSource所包含的数据来源储存至对象当中,其 中接受一个DataHandler 类的对象参数 。 第7 行建立Multipart类的对象,并且引用addBodyPart()将上述的MimeBodyPart加入其 中,最后引用setContent()将附件文件整合进所要发送的邮件当中