邮件收发协议(精选3篇)
邮件收发协议 篇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
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.