1、案例开发简易的电子邮件客户端1. 教学目标了解电子邮件系统的基本结构和工作过程。了解网络协议在网络应用软件开发过程中的作用,提高网络编程的兴趣。通过活动反思,培养学生的网络道德规范,增强信息社会责任意识。2. 教学对象分析现在的高一学生,对如何使用信息系统服务,如收发电子邮件并不陌生,但对信息系统的基本结构和工作过程等不熟悉。与之相对应的,学生可以编写单机运行的程序,但对如何开发网络应用软件知之甚少。3. 教学重点与难点教学重点:“客户/服务器”模式的特点、网络编程的要素、网络协议与软件开发。教学难点:网络应用软件的开发、通过程序代码实现收发电子邮件。4. 教学方法与手段教学方法:项目教学法教
2、学手段:教师讲授,学生分组实践、练习、体验。5. 教学过程设计教学环节教师活动学生活动意图与手段问题情境大家都用过电子邮件吧,请回忆一下不同使用方法的操作步骤。方法一:用浏览器收发电子邮件。方法二:用Foxmail等收发电子邮件。输入用户名和密码登陆后,就可以查看邮箱了;发邮件时,需要输入对方的邮件地址引出疑问:电子邮件信息系统到底是如何工作的?引入新课展示图片,帮助学生理解邮件收发的 工作原理,并解释SMTP、POPv3等术语。收发邮件时,我们点击了很多按钮,这些按钮背后对应着哪些指令?具体是怎样工作的?电子邮件系统从整体上看,又是如何工作的?为了弄清这些问题,今天我们换种方法来收发电子邮件
3、用程序收发电子邮件。观看演示文稿,加深理解。为引入新课做铺垫实践体验1让学生完成任务“编程发送电子邮件”,运行程序并观察结果。网络编程所需参数:用户名、密码、网络协议SMTP、发信服务器地址、收信人的邮箱地址。用老师给出的程序列出自己收信箱中的邮件,然后用浏览器或已有的客户端软件打开收信箱,看看用程序代码获得的列表是否完整、正确。完成教学目标,突破重点难点实践体验2让学生完成任务“编程获取电子邮件列表”。请学生输入必要的参数完善程序,然后运行程序并观察结果。网络编程所需参数:用户名、密码、网络协议 POPv3、邮件服务器地址。用老师给出的程序列出自己收信箱中的邮件,然后用浏览器或已有的客户端软
4、件打开收信箱,看看用程序代码获得的列表是否完整、正确。完成教学目标,进一步培养学生协作和沟通的能力知识讲授归纳总结通过刚才运行的两个程序,我们清楚了收发电子邮件的具体过程及具体的指令,从而了解了电子邮件系统的基本结构和工作过程。电子邮件系统实质上就是遵循事先商量好的协议交换数据。在老师的引导下,归纳电子邮件系统的基本结构和工作过程,进而进一步认识网络信息系统中的数据交换过程。实现教学目标拓展活动如何编程发送带附件的电子邮件?利用老师提供的代码,修改发送邮件的程序,实现添加附件的功能。拓展程序功能,加深对软件作用的理解活动反思自动发送电子邮件的程序可能会引发什么问题?该如何应对?查阅资料并回答。
5、发送邮件的程序,可能会被别有用心的人用来发送垃圾邮件。应对方法包括服务器端限制每个账户每天发送的电子邮件数量,用人工智能技术自动检测、拦截垃圾邮件等。增强信息社会责任感6. 相关资料可发送带附件的电子邮件的Python程序。iimport smtplibfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationpri
6、ntif _name_ = _main_: fromaddr = xxxxxxx #发信人邮箱地址password = xxxxxx #发信人邮箱密码toaddrs = xxxxxxxxx #收件人邮箱地址content = 附件是三个不同格式的文件。 #邮件正文内容textApart = MIMEText(content)imageFile = 1.jpgimageApart = MIMEImage(open(imageFile, rb).read(), imageFile.split(.)-1)imageApart.add_header(Content-Disposition, attac
7、hment, filename=imageFile)pdfFile = 2.pdfpdfApart = MIMEApplication(open(pdfFile, rb).read()pdfApart.add_header(Content-Disposition, attachment, filename=pdfFile)zipFile = 3.zipzipApart = MIMEApplication(open(zipFile, rb).read()zipApart.add_header(Content-Disposition, attachment, filename=zipFile)m
8、= MIMEMultipart()m.attach(textApart)m.attach(imageApart)m.attach(pdfApart)m.attach(zipApart)mSubject = 带有3个附件的邮件 #邮件标题mFrom=mTo=:.join(toaddrs)try: server = smtplib.SMTP() #发送服务器的地址server.login(fromaddr,password)server.sendmail(fromaddr, toaddrs, m.as_string()print(发送成功)server.quit()except smtplib.SMTPException as e:print(发送失败:,e)