邮件收发论文

2024-10-12

邮件收发论文(共8篇)

邮件收发论文 篇1

1 引言

现在人们的工作、生活中, 每天都会要查收和回复很多各种的邮件, 有用Web浏览器登录邮件系统的, 有用邮件客户端如: Foxmail、Outlook等登录处理邮件的, 而这些用久了难免就会厌烦, 想尝试一种新的方式来处理邮件, 下面就用当前比较流行的一种Python语言实现一个简单、快捷的邮件收发软件。

2 Python 体系结构

Python是最近几年逐渐流行开来的一种面向对象、解释型计算机程序设计语言, 最早是由Guido van Rossum于1989年底发明, 被Google公司广泛应用和发展壮大。Python语法简洁而清晰, 具有丰富和强大的类库。使用它能够很轻松地把用其他语言制作的各种模块联结在一起组成一个整体。较为常见 的一种应用情形是, 使用Python快速生成程序的原型, 包括用户界面等, 然后对一些有特别需求的部分, 再用更合适的语言改写, 如在3D游戏设计中的图形渲染模块及其他各种动画处理, 可以选用如3DMaX、Maya等实现, 只要通过Python把各个部分连接起来就形成了一个功能完整的项目。

接下来这里通过一个邮件收发软件的实例, 讲解如何使用Python语言进行应用开发, 开发环境如图1所示。

3 应用的主要模块

3.1 smtplib 模块

Python中的smtplib模块提供了一种非常方便的途径来发送电子邮件。它对SMTP协议进行了简单的封装。

3.1.1 smtplib 模块的介绍和功能实现

stmplib模块中有几个主要类 : SMTP类、SMTP_SSL类和LMTP类。

应用最多的就是SMTP类: smtplib.SMTP ([host [, port [, local_hostname [, timeout]]]])。

SMTP类用于实现跟SMTP服务器之间的连接 , 通过这个连接来向SMTP服务器发送指令, 执行如: 登录、发送邮件等相关操作。

SMTP类的所有 参数都是 可选的 , 其中host参数表示SMTP服务器的主机名 , port表示SMTP服务的端口 , 默认是值25; 如果在创建SMTP对象时只提供了这两个参数, 在初始化时会自动调用connect方法进行服务器的连接。

smtplib.SMTP提供的方法:

(1) SMTP.set_debuglevel (level) : 用于设置是否为调试模式。默认为False, 即非调试模式, 表示不输出任何调试信息。

( 2) SMTP.connect ( [ host [ , port] ] ) : 用于连接 到指定的SMTP服务器。参数分别表示SMTP主机和端口。也可以在host参数中指定端口号如 : smtp.163.com:25, 这样就可以不用给出port参数了。

(3) SMTP.docmd (cmd [, argstring]): 用于向SMTP服务器发送指令。一个可选参数argstring表示指令的后缀参数。

3.1.2 邮件发送的实现

以下给出邮件发送模块的实现代码:

3.2 poplib 模块

在Python中通过poplib模块来实现邮件的接收。

3.2.1 poplib 模块的的实现

poplib模块中以一个封装的pop3类来实现接收邮件的各种具体操作

pop3类的方法及功能如下:

(1) poplib.POP3._init_ () :连接pop3服务器。

(2) poplib.POP3.user poplib.POP3.pass_ (): 发送用户名和密码进行验证。为了与Python的关键字区分, 所以要加下划线。

(3) poplib.POP3.stat (): 获取邮箱中信件信息。

( 4) poplib.POP3.retr ( ) : 收取邮件 。该方法 返回一个tuple, 其中包含了结果代码和邮件。但是邮件并不是字符串格式, 而是一个字符串的列表。每一个元素表示该邮件的一行。可以使用“n” .join (lines) 来把它们转换成标准的字符串。

(5) poplib.POP3.dele (): 删除邮件。指令只带一个邮件数字作为参数, 所以必须为每一个要删除的邮件调用一次该指令, 大多数POP服务器在调用了quit () 之后才真正删除那些邮件。

3.2.2 邮件接收功能的实现

通过以下代码可以实现邮件的接收, 及邮件列表的生成:

4 结语

通过以上步骤实现了邮件的接收和发送功能, 有兴趣的读者可以试着再丰富一下软件的功能, 让平常的邮件收发更具乐趣。通过这个实例, 能够发现Python语言的简洁、 高效 , Python以其更好的兼容性和跨平台性 , 被越来越多的人所喜爱, 其强大的标准库和大量的第三方模块为Python的发展奠定了坚实的基础。

摘要:通过一个邮件收发的实例,展示了Python语言简洁和高效等特点,在日常的工作和生活中发挥越来越多的作用。

关键词:Python语言,邮件收发,封装类

邮件收发论文 篇2

为进一步规范邮件收发管理,确保公司邮件收发及时、准确,根据需要,特制定本规定。

第一条适用范围

本规定适用于公司各种邮件的收发管理。

第二条邮件类别

本规定所指的邮件包含平信、挂号信、电报、快递、包裹、汇款单、报刊、杂志等。

第三条邮件管理

一、邮件收发责任人

行政部为邮件收发管理部门,行政前台为具体执行岗位,负责公司所有邮件的收发。

二、邮件收发管理

1.公司所有外来邮件一律经行政前台签收分发,不得交由他人处理;

2.挂号信、包裹单、汇款单、特快专递等邮件由行政前台通知收件人,收件人至前台凭本人有效身份证件签字领取,委托他人领取的,必须持收件人本人有效证件,方可领取;

3.上级机关信件、公司领导邮件由行政前台转送相关领导;

3.部门及员工个人邮件由行政前台通知各部门领取;

4.公司为科室订阅的杂志由信息科领取后登记备案,相关科室再行借阅;

5.其他报刊、杂志由行政前台通知相关部门领取;

6.所有邮件的领取必须签字登记。

第四条 邮件收发责任人职责

1.每天做好各类邮件的签收登记并分类存放于指定位置,妥善保管;

2.对所有邮件应随到随清,及时分发,不得丢失损坏,搁置延误,对外来邮件应检封邮戳,如发现拆封或邮票被撕应拒绝签收,并向邮局反映,查明原由;

3.收件人联系方式不详或无法辨别的邮件存放于指定位置,供收件人查询,60天内无人领取的邮件,交由邮政部门处理。

第五条 本规定自下发之日起施行,最终解释权归公司行政部。

XX公司

邮件收发论文 篇3

分别发送

分别发送是基于这样的考虑,当你要把一封电子邮件群发给多人(比如众多客户)时,为了体现你对他的尊重和重视,你希望每个收件人只看到他自己的目标邮箱地址。在Foxmail 7.1中,要分别发送邮件给多人,请按如下所述操作:

1.在“写邮件”窗口,“收件人”后的方框中输入多个收件的邮箱地址,各地址间以英文的半角分号间隔。如果要从地址簿中添加收件人,请单击“收件人”方框后面的按钮(如图0),然后从地址簿中选择收件人。

2.填写主题、正文、添加附件后,在窗口右上角“×”按钮下面,单击“”(三个躺倒的感叹号,表示单击后会看到一个选项列表)按钮,打开其菜单列表,单击其中的“设置分别发送”(如图1)。

3.单击“发送”按钮,即可将该邮件分别发送了。

继续发送

当将一封邮件同时发送给多人时,由于邮件服务器对一次发送邮件的数量有限制,对于收件人数超过这个限制的邮件,只能多次发送。在Foxmail 7.0中,用户可以单击“继续发送”按钮,将邮件发给尚未发送的收件人。然而,升级到Foxmail 7.1后,你将发现这个“继续发送”按钮不见了。该怎么办呢?好办,请到“发件箱”,双击该封邮件,然后在“写邮件”窗口,再次单击工具栏中的“发送”按钮即可继续发送该邮件了。像在Foxmail 7.0中,你可以多将单击“继续发送”按钮一样,在Foxmail 7.1中,你同样可以多次重复上面的操作,多次单击“发送”按钮,直到把邮件发送给所有的收件人。

定时发送

Foxmail 7.1新增了一个“定时发送”邮件的功能,使用方法是:在“写邮件”窗口,单击窗口右上角的“”按钮,打开其菜单列表,单击其中的“定时发送”,然后在“定时”后的框中设置好要发送的日期和时间即可(如图2)。

收取所有帐号

在Foxmail 7.0中,要收取所有帐号的邮件,可以按下F4键,然而在Foxmail 7.1中,你将发现F4键已经不起作用了。那么,在Foxmail 7.1中,该如何同时收取所有帐号的邮件呢?方法是:在Foxmail 7.1主窗口,单击窗口右上角的“”按钮,打开其菜单列表,指向“收取”,然后单击“收取所有帐号”(如图3)。

地址簿

升级到Foxmail 7.1后,许多用户找不到原本心爱的“地址簿”了,其实Foxmail 7.1并没有舍弃地址簿,相反还有所加强,只是由于取消了菜单栏,地址簿的位置被挪动了,其新的位置是:在Foxmail 7.1主窗口,帐号列表下面从左向右数的第二个按钮,即“”按钮,单击该按钮即可从默认的帐号列表切换成显示地址簿了(如图4)。

超大附件

由于Foxmail也是腾讯的产品,所以能够与QQ号完美整合,所以使用Foxmail时,你可用你的QQ邮箱创建一个帐号,然后利用它实现超大附件的发送:

1.在Foxmail 7.1主窗口,单击帐号列表下面从左向右数的第五个按钮,即“”按钮,然后单击“上传文件”按钮(如图5),在“打开”对话框,找到并单击所需文件,最后单击“打开”按钮,即将文件上传到QQ邮箱中转站。

2.在“写邮件”窗口,单击“超大附件”,然后单击“选择服务器文件”(如图6),在“插入超大附件”对话框中选择所需文件,再单击“确定”按钮。

3.写好邮件后,单击“发送”,收件人即可从QQ邮箱中转站下载你分享的超大文件了。

以上是笔者使用Foxmail 7.1仅一天时间后的一点体会,列示于上,与大家共享,也希望对你能够有所帮助,帮助你建立起使用Foxmail 7.1的信心和勇气。其实,不论什么软件,高版本更好用,对用户也更加体贴,相信使用Foxmail 7.1不一会儿之后,你就会喜欢上它“恰当”的简洁了。

-王霞

简单邮件收发系统的设计与实现 篇4

1 系统总体设计

作为一个电子邮件收发系统,邮件的发送与收取是其核心功能,发送模块实现电子邮件的发送,支持邮件的单个发送和群发,邮件接收模块,实现电子邮件的收取。另外还增加了邮件转发、回复、删除以及地址薄管理等模块,其中地址薄管理模块可以让用户方便地管理自己的联系人,对联系人进行添加、修改、删除等。系统功能结构图如图1所示。

2 主要模块设计

2.1 邮件发送模块

主要成员变量说明

1)Smtp Client类

此类允许应用程序使用简单邮件传输协议(SMTP)来发送电子邮件,在使用Smtp Client类发送电子邮件时必须指定一下信息:用来发送电子邮件的SMTP主机服务器;身份验证的凭据(如果SMTP服务器要求);发件人的电子邮件地址;收件人的电子邮件地址;邮件内容等。

2)Mail Message类

此类主要用于指定电子邮件的发送地址、收件人地址等,其最重要属性如表1所示。

以下代码是使用Mail Message类创建一封电子邮件

3)Mail Attachment类

此类用于构造电子邮件附件,首先实例化Mail Attachment类,然后把它附加到Mail Message对象的Attachments集合中就可以完成向电子邮件中添加附件的功能。

使用Mail Attachment类添加邮件附件的代码如下:

以上即为发送不带附件的邮件SMTP命令用代码实现的过程

2.2 邮件接收模块

主要成员变量说明

1)DB类:此类用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

2)message类:此类主要是提供了一些获取邮件信息(比如邮件主题、发件人地址、收件人地址、日期、附件、邮件大小等)的方法。

主要成员函数说明

1)Receive Mails()函数

Receive Mails()函数用于获取指定邮箱中的邮件,并返回当前指定邮箱中所有的邮件列表。

部分主要代码如下:

2.3 删除邮件

1)主要成员变量说明

(1)网络连接类及实例Tcp Client tc:为TCP网络服务提供客户端连接类Tcp Client实例对象tc。Tcp Client类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据。而实例化的过程也是连接SMTP服务器的过程。

(2)提供用于网络访问的基础数据流及其实例Network Stream ns:此类提供访问网络的基础数据流的方法。其中最基本也是最重要的两个方法就是Write()和Read()方法,至于参数不再次赘述。

2)主要成员函数说明

(1)Delete Message(int int Message Index):此方法主要是实现对电子邮件的删除操作,POP3协议是一个客户端/服务器协议,它为实现客户端和服务器端通讯,定义了一套会话命令,客户机通过调用这些命令来处理存放在POP3服务器中的电子邮件,而此方法就是实现删除服务器中指定邮件的功能,首先需要传入一个参数即邮件索引,然后根据会话命令删除POP3服务器中指定的邮件。

(2)关键代码如下:

3 系统运行效果

3.1 新建邮件帐户

用户打开软件之后,需要新建一个邮件帐户,在新建邮箱帐户的过程中,需要指定验证的邮箱名地址,然后按“Esc”键系统会自动显示出发送服务器和接收服务器,然后输入邮箱密码,点击测试,看能否连接到远程邮箱服务器。新建邮箱帐户的主界面如图2所示。

3.2 发送邮件

1)发送不带附件的邮件

在新建邮箱帐户的过程中已经指定了邮箱地址和密码,所以默认以这些参数来发送邮件。通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。发送简单的邮件运行界面如图3所示。

2)发送带附件的邮件

发送带附件的邮件和简单的邮件不同之处在于多了发送附件的功能,并且邮件支持添加,清空,附件等功能。运行界面如图4所示。

3.3 验证邮件发送是否成功

邮件发送出去之后,用Foxmail跟踪接收之后,证明邮件和附件都可以正常接收,具体的Foxmail的接收界面如图5所示。

4 结束语

本文利用SMTP协议和POP协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。本系统是一个基于SNMP的系统,作为服务器管理的一部分,具有很好的开放性和独立性。电子邮件做为互联网的一个应用,大量的敏感信息要在网络上传播,电子邮件本身存在的安全隐患以及传输机密信息的特殊性,对电子邮件的安全性提出了更高的要求。开发一个安全性高、可实现大附件邮件分包传送的邮件系统来满足安全性需求将是下一步的研究目标。

摘要:目前有很多邮件客户端软件免费提供给用户使用,但是它们却过于复杂和庞大,为了用户能够方便快捷地收发邮件,利用SMTP协议和POP协议,设计并实现了简单但实用的电子邮件收发系统。

关键词:电子邮件,SMTP,POP3,邮件收发

参考文献

[1]Simon Robinson,K.Scott Allen.C#高级编程[M].北京:清华大学出版社,2002.

[2]Tom Archer.C#技术内幕[M].北京:清华大学出版社,2002.

[3]罗军舟,黎波涛,杨明.TCP/IP协议及网络编程技术[M].北京:清华大学出版社,2004.

如何收发电子邮件教案 篇5

[目的要求]:了解Outlook Express常用使用技巧;掌握Outlook express收发、阅读、撰写电子邮件及其附件的保存与发送。

[教学目标] 知识目标:Outlook Express等电子邮件软件的使用。电子邮件的收发、撰写。能力目标:培养学生解决实际生活应用问题的能力 情感目标:培养学生的人际交往相互沟通 [重点]:电子邮件的收发、阅读、撰写及附件的使用。[难点]:电子邮件附件的使用。[教学准备] 硬件准备:计算机房

软件准备:赛思多媒体系统、安装Microsoft powerpoint软件、自制教学用幻灯片

[教学方法]: 任务驱动式、交流讨论式 [学时]:1学时

[教学过程及内容]:(导入)

前面我们学会了在网上浏览信息和下载信息,但是这些信息都是针对于公众的,如果在亲朋好友之间又如何利用网络来传递信息呢,我们曾经学习过Internet提供的基本服务之一:电子邮件(E-mail)。这一节课我们就学习如何使用——收发电子邮件。使用电子邮在网上“收信”和“寄信”称为收发电子邮件。收发电子邮件的前提是:连接上因特网,然后才能使用电子邮件接收和发送电子邮件。收发电子邮件的软件很多,这里仅常用的一种Outlook Express为例,来学习收发电子邮件的方法。

[新授内容] 任务

一、启动Outlook Express 我们所用的Outlook Express 软件提供了非常方便地接收电子邮件的方法。它可分为两情况。一是已连接因特网,二是未连接因特网。此处第二种情况为例。

1.在Windows98任务栏的快速启动区中,有一个“Outlook Express”按钮击它启动电子邮件软件“Outlook Express”。

2.计算机未连接因特网,就弹出一个“拨号连接”对话操作框,在文本框中输入账号与密码,计算机就自动与网络连接。

3.连接成功,计算机就打开Outlook Express的窗口如图1所示。

图1 任务

二、发一封电子邮件

【例 1 】给老师发一封电子邮件,老师的电子邮件的地址是:wu3280@163.com 步骤 1 在Outlook Express窗口的菜单栏及快捷工具栏中,都有一个“新邮件”项,就是用于“写信”的一项功能。单击“Outlook Express”窗口的“新邮件”按钮,就可以打开一个电子邮件编辑器如图2所示

图2 步骤 2 电子邮件编辑器,除了有常规的菜单栏、工具栏之外,还有“发件人”、“收件人”电子邮件地址输入栏,“主题”栏即电子邮件的标题栏。另外还有“抄送”栏,将此信同时发送给其他人,在此栏填写相应的电子邮件地址。但注意:“抄送”栏中的地址要用逗号隔开。

步骤 3 在电子邮件编辑器最下边的窗格,就是书写邮件的地方。

步骤 4 写信时可以选择不同的字体、字号,以不同的风格发送自己的信件。步骤 5 写好之后单击“发送”按到收件人的邮箱里去。

如果要发送文件(比如图片、歌曲等)就要使用附件传送,在图2所示菜单里“插入”即可添加附件,此时就会多一个附件栏,并且所传送的文件就在附件里。

任务

三、接收、阅读及回复电子邮件

Outlook Express启动后,自动连接网络,进行收发邮件的工作,将你的电子邮箱中的邮件收到“收件箱”里,供你阅读;同时也会自动将“发件箱”里的邮件发送出去。这一工作也可以手动操作。

在图1所示“Outlook Express”窗口上,单击“发送/接收”按钮。2 接收到邮件后,在图1所示“Outlook Express”的“文件夹”窗口中,选择“收件箱”,在右边的浏览窗里,出现“收件箱”里已收到的“主题”。

选择其中一封,单击,该信的全文就在预览窗格中,我们就可以“阅读”了。还可以“回复作者”、“全部回复”、“转发邮件”等。

单击“回复作者”,屏幕弹出标题为“Re ×××”的邮件编辑窗,表示是“回

钮电子邮件被“发”出去,再经过网络“送”复”的信件。同时,在窗格中还附录了邮件的内容。收件人的地址也是原邮件自己的,不需要再输入。

回信的内容一般写在原信的上方,写完之后,单击“发送”,回信完成。

提示:收件箱是存放收到的邮件的地方。如果邮件接收以后还没有阅读过,它的标题就会以粗体显示。如果某个信箱里有没阅读过的邮件,则整个信箱的名称也会以粗体显示,并且会把没有阅读的邮件数目标在信箱名称的后面。一但我们阅读了这些邮件,这些粗体字就会变成普通的字体。

邮件阅读器是一个独立的窗口,如果不再需要阅读就可以关闭这个窗口。任务

四、保存邮件的附件

如果邮件带有附件,那么附件的名称和图标就会显示在邮件阅读器中,如图3所示。我们可以保存邮件的附件。

【例 2 】把刚刚收到的邮件附件保存到“我的文档”文件夹中。

在邮件阅读器中右键单击附件,弹出快捷菜单,选择“另存为„”会弹出保存对话框,选择保存文件的位置,单击“确定”即可。

直接在Outlook Express中,选择系统菜单里“文件”下的“保存附件„”,弹出保存对话框,选择保存文件的路径,单击“确定”即可。

注意:如果收到的邮件中带有附件,而且发件人又是你不熟识的人,就要慎重对待附件中的文件。因为有些电脑病毒就隐藏在这些附件中。只有在确定这些文件没有危害后,才能够打开文件。

四、复习巩固

现在每个同学在网上查找任一副图片发送到wu3280@163.com邮箱中,主题“图片”

五、板书设计

(一)、启动Outlook Express

(二)、发一封电子邮件

例:给老师发一封电子邮件,老师的电子邮件的地址是:wu3280@163.com

(三)、接收、阅读及回复电子邮件

电子邮件收发系统的研究与设计 篇6

经历了漫长的过程之后, 它现在已经演变成为一个更加复杂并丰富得多的系统, 可以传送声音、图片、图像、文档等多媒体信息, 以至于如数据库等更加专业化的文件都可以电子邮件附件的形式在网上分发。现在, 电子邮件已成为许多商家和组织机构的生命血脉。用户可以通过电子邮件的讨论会进行项目管理, 并且有时要根据快速, 或洲际的电子邮件信息交换进行重要的决策行动。一旦某个组织的电子邮件系统运行在支持TCP/IP协议的网络上或具有支持两个互联网邮件服务协议SMTP (简单邮件传输协议) 和POP (邮局协议) 之一的互联网网关, 它的邮件用户就能够连接到任何具有相似连接的电子邮件地址上了, 并且不论其电子邮件帐户在何处。

1 电子邮件的基本模块与相关的协议

1.1 邮件收发系统的模块设计

模块管理环境, 这些可以降低一个软件开发过程的复杂性, 减少工作难道。开发应用程序的第一步是在需求分析的基础上进行精心的模块划分, 模块划分的原则是尽量保持单个模块的独立性, 使模块与模块之间的耦合降到最小, 每一个模块暴露给其它模块的信息最少, 尽量让模块之间使用程序框架提供的服务注册机制来通信。由于模块与模块之间的耦合很小, 不会像传统的开发方式中的各模块之间那样存在纠缠不清的包和类的引用关系, 因此大部分模块的开发工作可以并行进行而不会互相影响。本文所讲述的邮件收发系统的模块如图1。

1.2 相关协议

1.2.1 SMTP协议

SMTP的全称是Simple Mail Transfer Protoeol, 即简单邮件传输协议。SMTP协议是TCP/IP协议族中的一员, 主要对如何将电子邮件从发送方地址传送到接收方地址, 也即是对传输的规则做了规定。目标是向用户提供高效、可靠的邮件传输。SMTP的一个重要特点是它能够在传送中接力传送邮件, 传送服务提供了进程间通信环境 (IPCE) , 此环境可以包括一个网络, 几个网络或一个网络的子网。理解到传送系统 (或IPCE) 不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是, 邮件可以通过不同网络上的主机接力式传送。

SMTP设计基于以下通信模型:针对用户的邮件请求, 发送SMTP建立与接收SMTP之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者。SMTP命令由发送SMTP发出, 由接收SMTP接收, 而应答则反方面传送。

一旦传送通道建立, SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收, 则返回OK应答;如果不能接收到, 则发出拒绝接收应答 (但不中止整个邮件操作) , 双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列, 如果接收者成功处理了邮件, 则返回OK应答。

SMTP提供传送邮件的机制, 如果接收方与发送方连接在同一个传送服务下时, 邮件可以直接由发送方主机传送到接收方主机;或者, 当两者不在同一个传送服务下时, 通过中继SMTP服务器传送。为了能够对SMTP服务器提供中继能力, 它必须拥有最终目的主机地址和邮箱名称。

1.2.2 POP3协议

POP读起来有点像是中文里的泡泡, 其实这是一个英文术语的缩写。POP的全称是Post Office Protocol, 即邮局协议, 用于电子邮件的接收, 现在常用的是第三版, 所以简称为POP3。

对于在网络上比较小的结点, 支持消息传输系统 (MTS) 是不实际的。例如, 一台工作站可能不具有充足的资源允许SMTP服务器和相当的本地邮件传送系统保持序驻留, 并持续运行。同样的, 将一台个人计算机长时间连接在IP类型网络上的费用也是可观的 (结点缺少的资源被称为“联络性”) 。

虽然如此, 在这样的小结点上允许管理邮件是十分有用的, 并且这些结点经常支持一个用户代理来管理邮件。为解决这一问题, 能够支持MTS的结点就为这些不能支持的结点提供了邮件存储功能。邮局协议-版本3就是使这样的工作站可以用一种比较实用的方法来访问存储于服务器上的储存邮件。通常, 这意味着工作站可以从服务器上取得邮件, 而服务器为它暂时保存邮件。

初始时, 服务器通过侦听TCP端口110开始POP3服务。当客户主机需要使用服务时, 它将与服务器主机建立TCP连接。当连接建立后, POP3发送确认消息。客户和POP3服务器相互 (分别) 交换命令和响应, 这一过程一直要持续到连接终止。

POP3命令由一个命令和一些参数组成。所有命令以一个CRLF对结束。命令和参数由可打印的ASCII字符组成, 它们之间由空格间隔。命令一般是三到四个字母, 每个参数却可达40个字符长。

POP3响应由一个状态码和一个可能跟有附加信息的命令组成。所有响应也是由CRLF对结束。现在有两种状态码, “确定” (“+OK”) 和“失败” (“-ERR”) 。

在生命周期中, POP3会话有几个不同的状态。一旦TCP连接被打开, 而且POP3服务器发送了确认信息, 此过程就进入了“确认”状态。在此状态中, 客户必须向POP3服务器确认自己是其的客户。一旦确认成功, 服务器就获取与客户邮件相关的资源, 此时这一过程进入了“操作”状态。在此状态中, 客户提出服务, 当客户发出QUIT命令时, 此过程进入了“更新”状态。在此状态中, POP3服务器释放在“操作”状态中取得的资源, 并发送消息, 终止连接。

POP3服务器可以拥有一个自动退出登录的记时器。此记时器必须至少可以记录10分钟。这样从客户发送的消息才可能刷新此记时器。当记时器失效时, POP3会话并不进入“更新”状态, 而是关闭TCP连接, 而且不删除任何消息, 不向客户发送任何响应。

一旦TCP连接由POP3客户打开, POP3服务器发送一个单行的确认。这个消息可以是由CRLF结束的任何字符。

此时POP3会话就进入了“确认”状态。此时, 客户必须向服务器证明它的身份。在文档中介绍两种可能的处理机制, 一种是USER和PASS命令, 另一种是APOP命令。

用USER和PASS命令进行确认过程, 客户必须首先发送USER命令, 如果POP3服务器以“确认”状态码响应, 客户就可以发送PASS命令以完成确认, 或者发送QUIT命令终止POP3会话。如果POP3服务器返回“失败”状态码, 客户可以再发送确认命令, 或者发送QUIT命令。

当客户发送了PASS命令后, 服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。

一旦服务器通过这些数据决定允许客户访问储存邮件, 服务器会在邮件上加上排它锁, 以防止在进入“更新”状态前对邮件的改变。如果成功获得了排它锁, 服务器返回一个“确认”状态码。会话进入“操作状态”, 同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开 (例如, 排它锁不能获得, 客户不能访问相应的邮件或者邮件不能进行语法分析) , 服务器将返回“失败”状态码。在返回“失败”状态码后, 服务器会关闭连接。如果服务器没有关闭连接, 客户可以重新发送确认命令, 重新开始, 或者发送QUIT命令。

在服务器打开邮件后, 它为每个消息指定一个消息号, 并以八进制表示每个消息的长度。第一个消息被指定为1, 第二个消息被指定为2, 以此类推, 第N个消息被指定为N。在POP3命令和响应中, 所以的消息号和长度以十进制表示。

一旦客户向服务器成功地确认了自己的身份, 服务器将锁住并打开相应的邮件, 这时POP3会话进入“操作”状态。现在客户可以重复下面的POP3命令, 对于每个命令服务器都会返回应答。最后, 客户发送QUIT命令, 会话进入“更新”状态。

2 电子邮件收发系统设计

邮件发送:把邮件从本地发送到邮件服务器。

首先, 设置邮件发送的端口号和邮件服务器;进行服务器连接;

其次, 将用户名和密码经过Base64编码, 并且发送进行验证;

最后, 邮件发送。

邮件接收:把邮件从服务器下载到本地并处理附件。

首先, 设置邮件接收端口号和下载邮件服务器;然后进行服务器连接;

其次, 用户名和密码检验;

最后, 邮件接收和附件处理。

3 结束语

随着电子邮件系统的应用, 日常工作中我们可以很方便地进行信息的交流而无须掌握复杂的技术, 从而改进了传统的信息交流的模式。

摘要:该文以电子邮件收发系统为研究对象, 研究了电子邮件系统的模块结构和收发邮件的整个流程, 分析了SMTP和POP3协议的使用, 实现了邮件系统的收发功能。

关键词:电子邮件,SMTP,POP3

参考文献

[1]贺文, 顾训穰.基于Web的客户端电子邮件系统的实现[J].计算机工程与应用, 2001 (8) .

[2]RFC1939-POP3协议 (RFC1939Post Office Protocol-Version3) .

邮件收发论文 篇7

本邮件收发系统在实现基本的对电子邮件的接收和发送等功能的基础上, 还支持单个用户添加多个邮箱帐户并统一进行管理等功能。用户添加了多个邮箱帐户后可以分别接收各个邮箱中的邮件, 并且在发邮件的时候可以选择使用任一邮箱发送。功能测试和验证结果表明, 该系统稳定、可扩展, 达到实时性要求。

1 技术简介

本邮件收发系统通过POP3协议和SMTP协议实现对电子邮件的接收和发送, 按照RFC 822协议所定义的格式对邮件实体进行解析。通过前期的技术选型, 最终确定整个系统采用B/S架构, 服务器端程序采用Node.js作为主要的开发语言, 数据库系统采用Mongo DB。

Node.js是一个Java Script的运行环境, 采用C++编写而成。之所以选择Node.js, 主要是因为通过前期调研了解到邮件收发系统是一个I/O密集型 (I/O bound) 的应用。而Node.js的无阻塞 (Non-Blocking) I/O、事件驱动 (Event-Driven) 等特性恰好适用于该种应用场景。且Node.js采用Google的V8Java Script引擎, 确保了其拥有良好的性能。

Mongo DB是一个基于分布式文件存储的数据库。由C++语言编写。其特点是高性能、易部署、易使用, 存储数据非常方便。本系统采用Mongo DB的主要原因是Mongo DB原生支持Node.js, 可以提升开发效率。

2 收发原理

如图1所示, 在电子邮件传递的过程中, 发件者的邮件代理从本地通过SMTP协议将邮件发送到SMTP邮件服务器, 邮件服务器通过SMTP协议将邮件发送到收件者的POP3邮件服务器。收件者的邮件代理使用POP3协议将邮件从其POP3邮件服务器拉取到本地。

而本系统在整个过程中则起到邮件用户代理这一角色, 本系统所部属的服务器本身不具备邮件发送功能, 需要用户将自己的邮箱帐户配置到系统中, 由本系统来代为发送和接收。

3 需求分析与功能设计

邮件收发系统的应用功能应包括以下几个方面:用户基本信息管理, 用户邮箱帐户管理, 邮件的接收、发送, 草稿邮件管理和联系人管理。

根据需求分析可以设计出系统的功能模块, 各个系统功能模块之间的关系如图2所示。

3.1 用户登录和注册

(1) 根据用户所属的不同角色显示不同的操作页面。管理员登录时, 除了显示普通用户所展示的界面之外, 还显示管理相关的入口链接。

(2) 新用户注册后成为普通用户。管理员在管理界面可以将普通用户提权为管理员。超级管理员有最高级权限, 且自身不可被其他管理员操作, 由系统配置文件定义。

3.2 用户角色管理

角色管理主要是给注册的用户分配角色, 即修改用户的角色, 删除用户的角色。

3.3 用户管理

添加用户, 修改用户, 删除用户。

3.4 邮件收发及管理

(1) 邮件接收, 对用户各个邮箱帐户中新邮件的接收, 统一查看用户已下载的所有邮件, 接收邮件中的附件等。未阅读的新邮件会高亮显示。

(2) 邮件发送, 用户可以指定一个自己的邮箱帐户来发送邮件, 在邮件中可以添加附件。邮件发送后将被保存在“已发送”信箱中以备查。

(3) 邮件管理。可以删除或者永久删除邮件, 已删除的邮件将移入“已删除”目录以便恢复, 永久删除的邮件不能恢复。

3.5 邮箱帐户管理

用户可以添加、编辑或删除邮箱帐户, 用户可以使用已添加的邮箱帐户收发邮件。

3.6 联系人管理

(1) 用户可以在联系人页面中添加、编辑、删除联系人信息。

(2) 用户在发送邮件的时候可以直接从联系人列表中快速选取收件地址。

4 实现与测试

本系统最核心的部分就是实现对邮件的接收和发送。在这个过程中主要使用POP3协议和SMTP协议来达到对电子邮件的接收和发送, 并且通过实现RFC822协议来解析邮件实体。

用户在使用本系统之前需要添加自己的邮箱帐户, 包括输入自己邮箱的用户名、密码和邮件供应商提供的邮件服务器 (POP3和SMTP服务器) 地址以及对应端口。之后在每次的收件和发件过程中, 系统将和邮件服务器建立起一个或多个socket连接, 并且按照POP3和SMTP协议所规定的数据格式, 将相应指令或数据通过该Socket连接发送到邮件服务器。而邮件服务器则会按照协议规定, 返回相应的指令和数据。系统在收到服务器的响应后, 即开始按照RFC 822协议中的规定, 将收到的数据包进行解析或者是进行相应的错误处理。

以下是系统核心部分的代码, 实现系统收发核心功能。

在本系统的开发过程中, 主要使用单元测试来确保代码中各个对象和函数对各种输入数据所得到的输出的正确性。

在计算机编程中, 单元测试是针对程序模块 (软件设计的最小单位) 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中, 一个单元就是单个程序、函数、过程等;对于面向对象编程, 最小单元就是方法, 包括基类 (超类) 、抽象类、或者派生类 (子类) 中的方法。

本系统的单元测试使用Node.js的第三方单元测试模块Mocha完成。在此过程中第三方断言模块使用Should.js。代码覆盖率报告使用jscoverage生成。

5 系统界面设计

进入系统后, 可看到本系统的主要用户界面。在界面的上方, 是系统相关的导航条。用户可以进入管理账户页面和设置用户个人信息的页面, 如果是管理员用户还可看到进入管理的入口。界面右上角是搜索邮件的搜索框, 用户可以键入关键字并搜索自己收件箱中的邮件。

在界面的左侧, 是邮箱相关功能的工具栏。通过该工具栏, 用户可以进入写信和管理员界面, 同时工具栏中还提供了进入用户各个邮箱帐户的入口, 以及进入草稿箱、已删除邮件等信箱的入口。

在发邮件界面中 (如图3所示) , 用户可以直接将写好的邮件发送到收件人信箱或者保存为草稿。界面的右侧显示了用户添加的联系人列表, 用户可以通过直接单击联系人姓名来将其快速加入到收件人当中, 而不需要手动输入对方的邮箱地址, 这样不仅减少了用户输入出错的几率且为用户提供了方便。

在邮件列表界面中 (如图4所示) , 系统用列表的形式展示了用户接收到的邮件。其中第一列显示邮件发件人的名称或者是邮箱地址中的用户名, 第二列显示邮件的标题以及摘要, 最后一列显示邮件发送的日期。每一页显示的邮件数目可以通过系统的配置文件进行设定。

在此界面中, 用户可以对多封邮件进行删除或者彻底删除操作。被删除的邮件将被移入已删除信箱, 用户进入已删除信箱可对该邮件进行恢复操作;彻底删除的邮件将直接从数据库中删除且不可恢复。同时, 用户还可以将多封新邮件标记为已读状态。

6结语

经过前期的调研, 中期的开发和后期的测试, 系统实现了用户基本信息管理, 用户邮箱帐户管理, 邮件的接收、发送, 草稿邮件管理和联系人管理等功能, 并且通过单元测试保证了系统各核心部件功能的正确运行, 确保本系统是可用、完整、稳定且安全的。

参考文献

[1]Mike Cantelon/TJ Holowaychuk.Node.js in Action[M].Manning Press.2011.

[2]Kristina Chodorow/Michael Dirolf.MongoDB:The Definitive Guide[M].O'Reilly Media.2011.

[3]Nicholas C.Zakas.丁琛, 赵泽欣, 译.高性能JavaScript[M].北京:电子工业出版社, 2011.

[4]郭欣.构建高性能Web站点[M].北京:电子工业出版社, 2009.

[5]Nicholas C.Zakas.李松峰, 曹力, 译.JavaScript高级程序设计[M].北京:人民邮电出版社, 2010.

邮件收发论文 篇8

《收发电子邮件》为苏教版信息技术下册第9课的内容,经过前期的学习,学生已经掌握了上网浏览、下载信息和申请免费电子邮箱的方法,这为本课的学习作了良好的铺垫。本课的主要内容分为三部分:登录电子邮箱、发送电子邮件和回复电子邮件。其中,发送电子邮件的方法,既是重点又是难点。在这一课中,学生需要建立的信息素养至少需要包括以下几块内容:一是负责任地正确发送邮件;二是正确处理邮箱中出现的垃圾邮件;三是正确回复和转发网络上的问卷邮件或连环邮件。

一、一一击破,用在学科难点的破解中

微视频在这一环节所起到是“影子老师”的作用。教师布置了课前预习的任务后,学生利用微视频试着完成作业,老师很难再组织学生借助于在线平台去进行过程性的辅助或在线答疑,而学生遇到问题时,除了可以去请教身边的人以外,最渴望的是得到老师的及时帮助。因此,老师将教材中的操作题进行了适当重组和拓展,制作成微视频,供学生选择观看使用。

教材中有这样一道题:将收到的电子邮件转发给其他好友,发送邮件时,可以将文件作为“附件”发给收件人。试着将图片、文本、声音等文件作为“附件”发送给收件人。

对于小学四年级学生来讲,这道题是有相当难度的,题面抽象,没有具体的操作点,学生在操作时难免会陷入迷茫:具体是哪一封邮件?好友的邮箱地址是什么?具体的图片在哪里?等等。于是我将题目进行了适当重组和拓展,内容变得更为具体,操作更加明确。

改编后的题目:三月份是学雷锋活动月,你能利用电子邮件的方式邀请远方的朋友小红一起加入到学习雷锋好榜样的活动中来吗?请将老师发给大家的“学雷锋倡议书”邮件,转发给你的好友小红,她的邮箱是wxxqsxxmfx@126.com,并将自己班级学雷锋的活动照片作为“附件”一起发送给她,我相信小红收到大家的邮件后,一定会被我班丰富的学雷锋活动所深深吸引,并主动加入到学雷锋活动中来。对于解题,教师制作了导学微视频。

在课堂教学中,我打开了小红的邮箱,通过屏幕,学生看到了自己的邮件已经成功地转发,都非常高兴,并叽叽喳喳议论这是谁发的,那是谁发的,谁第一个发送成功,谁第二个发送成功……在议论过程中,同学们也发现了问题,有些邮件不知道是谁发的,有些邮件内容不完整等。于是,老师及时补充了负责任地发送邮件的教学内容。

二、润物无声,用在学生信息伦理素养的培养中

《收发电子邮件》的新知学习采用了课前自主学习,课中具体解疑的翻转式教学,学生利用老师提供的微视频等资料,完成新知的课前学习,课中有了更多的时间来完成教材的拓展和信息伦理素养的教育。

本课中,师生一起归纳出负责任地收发电子邮件需要做到的操作要求和规范,利用屏幕录像专家将这一过程记录下来,制作成我们班级的《文明发件公约》微视频。同学们在收发电子邮件前先行观看,三省其身,并将其完善到学习包中,以备后来学习者学习使用。

文明发件公约:

(1)在发送邮件之前,确认对方的地址,写清主题,标明发件人及发件内容。

(2)邮件要易于对方阅读,不要出现错别字,严格按照书信书写格式,慎用火星体或网络语言。

(3)注意附件大小是否合适。

(4)在需要把收到的邮件转发给别人时,多考虑,确认是否合适转发。

(5)确认需要回信时,要尽快回信;别人作出回应时,要礼貌地尽快发送感谢的邮件。

(6)注意病毒。要检查自己所发送的文件是否带有病毒,特别注意来自陌生人的邮件。

三、生动激趣,用在贴近实际的情景教学中

随着学生越来越多地使用电子邮箱,我们可以预知学生将会遇到各种问题情景。例如,垃圾邮件的正确处理,连环邮件的正确处理,来自邮箱的问卷测验如何处理等。我们的信息技术课堂有责任有能力引导学生正确应对并处理使用过程中可能遇到的各种情景。借助于微视频,将问题情景生动化,注重“教”与“学”的统一性,想学生所“学”,教学生所“惑”,真正发挥教师的主导作用,在教师微视频的指引下,少走弯路,避免在实际情景中茫然失措。

上一篇:地区经济发展和城市化下一篇:无线发射设备