110 likes | 226 Views
3.1 纯文本电子邮件的发送. 信息工程系 向模军. Tel: Email: QQ:. 13684285460 xmj.cn@163.com 156638267. 1 任务引入. 1 、任务分组 四个学生组成一个任务组,学生自由组合。每个任务组选出一名组长,负责本组的任务分工,组长除参加任务外,负责组员间的分工、必须认真、如实填写学生任务执行报告。并上传提交任务报告、程序源代码。 2、布置任务
E N D
3.1 纯文本电子邮件的发送 信息工程系 向模军 Tel:Email: QQ: 13684285460xmj.cn@163.com156638267
1 任务引入 1、任务分组 四个学生组成一个任务组,学生自由组合。每个任务组选出一名组长,负责本组的任务分工,组长除参加任务外,负责组员间的分工、必须认真、如实填写学生任务执行报告。并上传提交任务报告、程序源代码。 2、布置任务 在校内测试邮件服务器上申请两个邮箱地址,配置myeclipse和tomcat开发一个基于web的纯文本邮件发送程序。该程序能够实现纯文本邮件的发送。并能通过适当的配置,进一步测试,向163,sina等邮箱发送邮件。 2/11
2 任务讨论 1、邮件发送流程 2、任务关键点及要求 (1)、客户端(发件人)需要一个WEB页面填写邮件发送的收件人地址,发件人地址及邮件内容。如何设计这个WEB页面。 (2)、如何收集WEB页面中的相关数据信息。 (3)、如何调用相关的邮件通讯协议封装邮件并发送。 3/11
3邮件的基本通讯协议 1、邮件的基本通讯协议 (1).SMTP 简单邮件传输协议定义了递送邮件的机制。在本任务中,我们将使用基于Java-Mail的程序与学院或者ISP的SMTP服务器进行通讯。 (2).POP POP是一种邮局协议,目前为第3个版本,即众所周知的POP3。POP定义了一种用户如何获得邮件的机制。它规定了每个用户使用一个单独的邮箱。 (3).IMAP IMAP 使用在接收信息的高级协议,目前版本为第4版,所以也被称为IMAP4。需要注意的是在使用IMAP时,邮件服务器必须支持该协议。 (4).MIME MIME 并不是用于传送邮件的协议,它作为多用途邮件的扩展定义了邮件内容的格式:信息格式、附件格式等等。 4/11
2serverlet的运行机制 2、serverlet的运行机制 (1)serverlet的运行过程: 客户端发送请求至服务器端; 服务器将请求信息发送至Servlet; Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求 ; 服务器将响应返回给客户端 。 (2)Servlet生命周期: Server创建一个Servlet的实例 Server调用Servlet的init()方法 一个客户端的请求到达Server Server创建一个请求对象 Server创建一个响应对象 Server激活Servlet的service()方法,传递请求和响应对象作为参数 service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息 5/11
4 任务实施 • 启动myeclipse,创建web项目 2、建立web项目,名为:javamail • 3、引入需要使用的JAR文件,mail.jar,cos.jar,activation.jar。 • 4、在WebRoot 下建立javamail1.html文件 5、创建包com.serverlet 6、在包下创建serverlet 7、填写serverlet映射的URL,自动生成web.xml。 8、Send.java 代码 6/11
5 任务点评 在分组实施的情况下,各小组分工明确,任务完成较好。但也发现一些问题。 1、部份小组成员分工不明确,导致任务实施过程中,进展较慢,没有按时完成。 2.同学们查阅资料的能力不强,遇到问题时,不会查阅相关资料,延误了时间。 3.组内成员分工不均衡,有个别同学参与任务较少。 7/11
6 试一试 练一练 编写邮件发送页面 8/11
6 试一试 练一练 2、编写发送邮件的serverlet • publicclass Send extends HttpServlet { • publicvoid doPost(HttpServletRequest request, HttpServletResponse response) • throws ServletException, IOException { • response.setContentType("text/html"); • response.setCharacterEncoding("gb2312"); • PrintWriter out = response.getWriter(); • request.setCharacterEncoding("gb2312"); • String from=request.getParameter("from"); • String to=request.getParameter("to"); • String subject=request.getParameter("subject"); • String context=request.getParameter("context"); • //确定发送邮件服务器的地址,可以是ip地址,也可以是主机名 • String mailserver="scemi"; • //设置邮件的传输协议 • Properties prop=System.getProperties(); • prop.put("mail.smtp.host",mailserver); • Session session = Session.getInstance(prop, null); • //创建发送信息 • Message msg = new MimeMessage(session); 9/11
6 试一试 练一练 2、编写发送邮件的serverlet • publicclass Send extends HttpServlet { • try{ • msg.setFrom(new InternetAddress(from));//设置发信人 • msg.setRecipient(Message.RecipientType.TO , newInternetAddress(to));//设置收信人 • msg.setSubject(subject);//设置邮件主题 • msg.setSentDate(new Date());//设置收信日期 • msg.setText(context);//设置发信内容 • Transport.send(msg); //发送 • out.print("邮件发送成功"); • } catch (Exception ex) • {out.print("邮件发送失败!");out.print(ex.toString()); • } • out.flush();out.close(); • }} 10/11