JSP参考教材PPT第四章会话跟踪简介JavaMail和Servl.ppt_第1页
JSP参考教材PPT第四章会话跟踪简介JavaMail和Servl.ppt_第2页
JSP参考教材PPT第四章会话跟踪简介JavaMail和Servl.ppt_第3页
JSP参考教材PPT第四章会话跟踪简介JavaMail和Servl.ppt_第4页
JSP参考教材PPT第四章会话跟踪简介JavaMail和Servl.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章,JavaMail和Servlet,回顾,会话跟踪允许服务器跟踪同一客户端作出的连续请求HttpServletRequest接口的getSession()方法用于创建会话不同的会话跟踪技术包括URL重写、Cookie和隐藏表单域运行于同一服务器上的Servlet可以使用Servlet间通信方法进行通信Servlet上下文中可以存储共享对象,目标,使用JavaMailAPI描述JavaMail会话和消息使用Transport对象创建SendMailServlet描述WebMailServlet,JavaMailweb,通过一个JavaMailWeb应用程序,客户可以访问Mail服务器上的邮件帐号,收发邮件和管理邮件夹Email邮件服务器可以分为发送邮件的服务器和接收邮件的服务器发送邮件服务器使用邮件发送协议,常用的是SMTP协议,所以通常也把发送邮件的服务器称为SMTP协议接收邮件的服务器使用接收邮件协议,通常有POP3协议和IMAP协议,所以也叫做POP3服务器或IMAP服务器,E-mail系统,客户机A,E-Mail服务器A,E-Mail服务器B,客户机B,Internet,1,3,2SMTP协议,pop3协议,客户机A向客户机B发送邮件的过程,收发邮件的过程,SMTP发送一封邮件的过程客户端邮件首先到达邮件服务器,再由SMTP服务器负责传送到接收方的服务器。发送前发送服务器会与接收服务器联系,以确认接收方服务器是否已经准备好。如果已经准备好,则传送邮件;如果没有准备好,发送服务器会等待,并再一段时间后继续与接收方服务器进行联系,如果在规定的时间内联系不上,则发送消息到客户端说明情况POP3收信的过程用户通过自己熟悉的Email客户端软件,如foxmail,outlook等设置相应的参数后,就能够将所有的邮件从远程邮件服务器上下载到本地机上,演示:架设james服务器,JavaMailAPI,JavaMailAPI,抽象类的集合,跨平台和跨协议,提供发送和接收JavaMail的功能,SMTP服务器用于发送邮件,POP3和IMAP服务器用于接收邮件,JavaMail用于通过网络或Internet发送和接收邮件。JavaMailAPI是SUN为java开发者提供的公用MailAPI框架,它支持各种电子邮件通信协议,如IMAP,POP3,SMTP,为java应用程序提供email处理的接口,JavaMail组件,JavaMailAPI,抽象类层,Internet实现层,中间层,类结构,Message,Store,Session,Folder,JavaMail类,开发javamail应用需要两个jar文件:mail.jar和activation.jar,jbuilder2006自带这两个文件,6种主要类,javax.mail.Session定义了一个基本邮件会话,是javamailAPI最高层入口类。所有其他类都是经由这个Session才得以生效。Session对象从java.util.Properties对象中获取信息,如邮件服务器,接受邮件协议,用户名,密码等信息javax.mail.Store访问接收邮件服务器上邮件账户的入口,通过他的getFolder方法,可以访问特定的邮件夹javax.mail.Folder代表邮件夹,用于分级组织邮件,通过Folder类可以访问和设置邮件夹中的邮件。,6种主要类续,javax.mail.Message该类封装了邮件信息,提供了。和设置邮件内容的方法。他是抽象类,常用子类为ernet.MimeMessagejavax.mail.Address代表电子邮件地址,与Message一样也是一个抽象类,常用子类为ernet.InternetAddressjavax.mail.Transport给据类型指定的邮件发送协议(通常是SMTP),通过指定的邮件发送服务器来发送邮件。Transport是抽象类,它提供一个静态方法send(Message)方法来发送邮件,消息过程,消息,传输,发件人发送一则消息,提交该消息,存储,接收消息,文件夹,将消息存储Folder对象中,消息,收件人访问该消息,网络,发送邮件步骤1,step1:设置javaMail的属性创建javax.mail.Properties类的对象,该对象用来设置javaMail的属性,发送邮件步骤2,step2:创建Session实例调用javax.mail.Session类的静态方法Session.getDefaultInstance获取Session实例,该方法根据已经配置好的javaMail属性来创建Session实例,Session类,Session类是最高级别的类可以创建共享和非共享会话会话不能有子类存放支持特定协议的Store和Transport对象能够控制和加载类Session对象具有用户配置属性,如主机名和用户名,用javamail进行认证发信1,当今mail服务器大多都是通过认证才能发信的.这一点在开发要特别主意,否则发信会失败Javax.mail.Authenticator类:Authenticator通过用户名和密码访问受保护的资源。对于JavaMailAPI来说,这些资源就是邮件服务器Step1:要使用Authenticator,先创建一个抽象类的子类,并从getPasswordAuthentication()方法中返回PasswordAuthentication实例,用javamail进行认证发信2,用javamail进行认证发信3,Step2:Step3:,发送邮件步骤3,step3:创建邮件信息,即创建Message对象,Message类,Message类,标题属性,Part接口定义的属性,Message类添加的属性,主体内容,DataHandler对象消息的内容,发送邮件步骤4,step4:设置邮件体,登录邮件服务器,javax.mail.Store类Store类实现特定邮件协议上的读、写、监视、查找等操作。通过Javax.mail.Store类可以访问Javax.mail.Folder类。用法:Storestore=s.getSorte(pop3);/s为一个邮件会话store.connect(popserver,username,password);/通过你提供的pop地址,用户名和密码登录你的邮箱,Store类,发件人,发送消息,StoreClass类,收件人,收件人Store,文件夹,消息,收件人登录,Store验证用户并允许访问视图消息,Folder类,Folder类,子文件夹,包含消息,消息,抽象类,关闭状态,importjava.util.*;importjava.io.*;importjavax.mail.*;ernet.*;importjavax.activation.*;publicclasswritemessagestaticStringmsgText=“请在此处输入文本。此文本为一字符串。;publicstaticvoidmain(Stringargs)Propertiesp=System.getProperties();p.put(“mail.smtp.host“,host);Sessions=Session.getDefaultInstance(p,null);Messagem=newMimeMessage(s);Addressfrom=newInternetAddress(StringSender_Email);m.setFrom(from);Addressto=newInternetAddress(StringRecipient_Email);m.setRecipients(Message.RecipientType.TO,to);m.setSubject(“您好,世界);m.setSentDate(newDate();m.setText(msgText);Transporttrans=session.getTransport(“SMTP“);trans.send(m),发送JavaMail,获得系统属性,设置连接协议并创建会话,新建Message对象,并为其设置属性,使用Transport类的send()方法将消息发送给收件人,创建一个HTML页面,用于接受邮件服务器名称、发件人地址、收件人地址、主题和消息的内容单击提交之后将此HTML转发给Servlet,SendMailServlet2-1,演示:示例1,ShopStop消息传递服务欢迎来到ShopStop邮件系统请输入发送邮件的所有详细信息邮件服务器:,创建一个Servlet,用于接受HTTP页面上的邮件服务器名称、发件人地址、收件人地址、主题和消息的内容发送邮件,SendMailServlet2-2,演示:示例2,publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionresponse.setContentType(CONTENT_TYPE);PrintWriterout=response.getWriter();StringsmtpServer=request.getParameter(txtserver);StringemailTo=request.getParameter(txtto);StringfromEmail=request.getParameter(txtfrom);Stringsubject=request.getParameter(txtsubject);Stringbody=request.getParameter(txtmessage);tryPropertiesprops=newProperties();props.put(tocol,smtp);props.put(mail.smtp.host,smtpServer);props.put(mail.smtp.port,25);Sessionmailsession=Session.getInstance(props);Messagemsg=newMimeMessage(mailsession);msg.setFrom(newInternetAddress(fromEmail);msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(emailTo);msg.setSentDate(newDate();msg.setSubject(subject);msg.setText(body);Transport.send(msg);msg.writeTo(System.out);out.println(“邮件已成功发送到+emailTo);catch(Exceptione)System.out.println(e);out.close();,importjava.util.*;importjava.io.*;importjavax.mail.*;ernet.*;importjavax.activation.*;publicclasswritemessagepublicstaticvoidmain(Stringargs)Sessionses=Session.getDefaultInstance(System.getProperties(),null);Storestore=ses.getStore(protocol);store.connect(hostname,username,password)Folderfolder=store.getFolder(Inbox);folder.open(Folder.READ_WRITE);Messagearraymessage=folder.getMessages();for(inti=0,j=arraymessage.length;ij;i+)arraymessagei.writeTo(System.out);folder.close(false);store.close();,列出Inbox中的邮件,获得Session对象,获得Store对象并连接到Store,获得默认文件夹并以Read_Write模式打开,获得数组中的所有消息,回复消息,Message类包括reply()方法reply()方法将boolean作为参数此方法将设置新消息的setForm或replyTo属性Transport对象的Send()方法用于发送邮件回复消息的语法为:Messagereply=object_message.reply(false);reply.setFrom(newInternetAddress(Stringemail);reply.setText(Stringtext);Transport.send(reply);,Multipart消息,Multipart消息是Message类的对象内容类型设置为MultipartMultipart对象可以获得一个或多个BodypartBodypart对象可以获得一个新的Multipart对象或DataHandlerBodypart对象是Part接口的实例化Multipart消息可以包含纯文本消息或带有附件的消息,Multipart消息结构,Multipart对象,Bodypart对象,Bodypart对象,Bodypart对象,创建一个HTML页面,用于接受邮件服务器名称、发件人地址、收件人地址、主题、要附加的文件的位置和消息的内容单击提交之后将HTML转发到Servlet,发送带有附件的邮件,演示:示例3,ShopStop消息传递服务欢迎来到ShopStop邮件系统请输入发送邮件的所有详细信息服务器:,创建一个Servlet,用于接受服务器名称、发件人地址、收件人地址、要附加的文件的位置、主题和消息的内容发送带有附件的消息,发送带有附件的邮件,演示:示例4,Propertiesprops=System.getProperties();tryprops.put(mail.smtp.host,host);Sessionsession=Session.getInstance(props,null);MimeMessagemessage=newMimeMessage(session);message.setFrom(newInternetAddress(from);message.addRecipient(Message.RecipientType.TO,newInternetAddress(to);message.setSubject(subject);MimeBodyPartmessageBodyPart=newMimeBodyPart();messageBodyPar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论