邮箱系统

一、背景介绍

 

1.1  一些专业名称的解释

MUA——Mail User Agent,邮件用户代理。是用户与电子邮件系统的交互接口,一般来说它就是我们PC机上的一个程序,提供一个好的用户界面,它提取用户在其界面填写的各项信息,生成一封符合SMTP等邮件标准的邮件,然后采用SMTP协议将邮件发送到发送端邮件服务器。常见的通用型代理有OutLook Express、FoxMail、网易闪电邮等

MTA——Mail Transfer Agent,邮件传输代理。负责邮件的传输,它采用端到端的传输的传输方式,源端主机参与邮件传输的全过程,也可称之为SMTP服务器。其实就是那些Email服务提供商,比如网易、新浪等等。比如我使用的电子邮件是163.com,所以,发Email首先被投递到网易提供的MTA,再由网易的MTA发到对方服务商,可能是sina、qq或者其他的MTA,这个过程中间可能还会经过别的MTA

MDA——Mail Deliver Agent,邮件投递代理。Email到达收件人(比如使用的是新浪的邮箱)的MTA后,新浪的MTA会把Email投递到邮件的最终目的地MDA。Email到达MDA后,就静静地躺在新浪的某个服务器上,存放在某个文件或特殊的数据库里。Email不会直接到达对方的电脑,对方要取到邮件,必须通过MUA从MDA上把邮件取到自己的电脑上。

SMTP——Simple Mail Transfer Protocol,简单邮件传输协议 。是Internet上基于TCP/IP的应用层协议,定义了邮件发送方和接收方之间的连接传输,默认端口号TCP 25。SMTP有其一定的局限性,它只能传送ASCII文本文件,而对于一些二进制数据文件需要进行编码后才能传送。

MIME——Multipose Internet Mail Extensions,多途径Internet邮件扩展协议。是一种编码标准,它解决了SMTP只能传送ASCII文本的限制。MIME定义了各种类型数据,如声音、图像、表格、二进制数据等的编码格式,通过对这些类型的数据编码并将它们作为邮件中的附件进行处理,以保证这些部分内容完整、正确地传输。因此,MIME增强了SMTP的传输功能,统一了编码规范。

POP3——Post Office Protocol Version 3,邮局协议的第三版本。主要用于支持使用客户端远程管理在服务器上的电子邮件。,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件

IMAP——Internet Message Access Protocol,因特网报文存取协议。它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

扫描二维码关注公众号,回复: 5163008 查看本文章

1.2  电子邮件收发原理

有了上述基本概念,要编写程序来发送和接收邮件,本质上就是:

编写MUA把邮件发到MTA;

编写MUA从MDA上收邮件。

发邮件时,MUA和MTA使用的协议就是SMTP,后面的MTA到另一个MTA也是用SMTP协议。

收邮件时,MUA和MDA使用的协议有两种:POP3和IMAP。

邮件客户端软件在发邮件时,会让你先配置SMTP服务器,也就是你要发到哪个MTA上。假设你正在使用163的邮箱,你就不能直接发到新浪的MTA上,因为它只服务新浪的用户,所以,你得填163提供的SMTP服务器地址:smtp.163.com,为了证明你是163的用户,SMTP服务器还要求你填写邮箱地址和邮箱口令,这样,MUA才能正常地把Email通过SMTP协议发送到MTA。

类似的,从MDA收邮件时,MDA服务器也要求验证你的邮箱口令,确保不会有人冒充你收取你的邮件,所以,Outlook之类的邮件客户端会要求你填写POP3或IMAP服务器地址、邮箱地址和口令,这样,MUA才能顺利地通过POP或IMAP协议从MDA取到邮件。

1.3  编码前的准备工作

使用Python收发邮件前,请先准备好至少两个电子邮件,如[email protected][email protected][email protected]等,注意两个邮箱不要用同一家邮件服务商。

最后特别注意,目前大多数邮件服务商都需要手动打开SMTP发信和POP收信的功能,否则只允许在网页登录,以163邮箱为例配置步骤如下:

(1)登陆自己的163邮箱,在设置中选择“POP3/SMTP/IMAP”,配置如下图,并记住SMTP服务器地址,后续会用到

 (2)找到设置中的“客户端授权码”,开启这项功能并设置授权码,系统会提示不允许与登陆密码相同

猜你喜欢

转载自www.cnblogs.com/aby321/p/10366205.html