PYTHON学习:使用POP3协议下载邮件

以前使用电脑端访问邮箱时,知道有POP3、SMTP协议,随首技术的发展,最近又有了很多种选择,尤其是手机端,看到了每多种连接方式,比如IMAP、EXCHANGE方式,邮件还带同步的,比如电脑端改变了邮件,手机端也同步了,因此想写几篇文章学习一下这些协议和新的技术,此次看的是POP3协议。
POP3是Post Office Protocol – Version 3的简写,中文意思是简单邮局协议(版本3),它是由RFC1939文件描述的。POP3协议的作用是动态地从服务器上下载邮件,然后删除服务器上的邮件(新版的POP3可以不删除),除此之外,POP3协议并没有提供更多的对于邮件的操作。相应的,有一种更高级的IMAP4协议,能够支持对邮件更多的操作。
下面是POP3协议所支持的命令:

命令
描述
USER [username]
处理用户名
PASS [password]
处理用户密码
APOP [Name,Digest]
认可Digest是MD5消息摘要
STAT
服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL [Msg#]
处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST [Msg#]
处理返回邮件数量和每个邮件的大小
RETR [Msg#]
处理返回由参数标识的邮件的全部文本
DELE [Msg#]
处理服务器将由参数标识的邮件标记为删除,由quit命令执行
RSET
处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP [Msg# n]
处理服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP
服务器返回一个肯定的响应
QUIT
终止会话

继续阅读PYTHON学习:使用POP3协议下载邮件

PYTHON学习:行的划分和注释

PYTHON程序由一系列逻辑行组成,每一逻辑行由NEWLINE结尾,同时,逻辑行又由物理行通过显示或者隐式连接组成。物理行由一系列字符组成,以换行符结尾,换行符在UNIX系统中是LF,在WINDOWS系统中是CR LF,在Machintosh系统中用CR来表示,无论什么平台,这些行结尾符号都可以使用,没有区别。
先看看显式得连接不同的行,也就是一行写不完如何换行写程序,在写程序时,有可能一行写不完,如果直接回车换行再写,会出错,正确的做法是在要换和f的地方输入\,然后在下一行接着写,否则就会出错:
if 1900 < year < 2100 and 1 <= month <= 12 \
and 1 <= day <=31
return 1
隐式地连接不同的行,是指系统自动地认为不同行的内容为同一个逻辑行的情况,这些情况是指在一对括号、花括号、中括号中的内容,不用\换行:
month_names = [‘Januari’, ‘Februari’, ‘Maart’,
‘April’,   ‘Mei’, ‘Juni’  ] 继续阅读PYTHON学习:行的划分和注释

PYTHON学习:不同的PYTHON实现

PYTHON有很多不同的实现,每种实现都有一系列的内置和标准的模块,最常见的是CPython,也就是大家常常说的Python,但同时PYTHON还有很多种实现,这些不同的实现满足了不同的使用者的需求,面就是PYTHON的几种常见的实现:
CPython 是最原始、维护得最多的一种PYTHON实现,使用C语言编写,每当有新的特点、特性出现时,CPython最先更新。
Jython 是在JAVA中实现的PYTHON,这种实现可以当作JAVA应用的一个脚本语言,或者可以用来创建调用JAVA类库的应用,它常常用来创建JAVA类库的测试程序。
Python for .NET 使用了CPython的实现方式,与CPython不同的是它是一个可管理的.NET应用,可以使用.NET类库。
IronPython 也是一种.NET实现的PYTHON,与Python for .NET不同,它能够将Python代码编译成.NET汇编。
PyPy 完全使用Python实现的Python,它支持其它几种实现都没有的特性,比如StacklessJust in Time compiler,这使得它的运行速度比CPython快,也可以安全得运行一些不被信任的代码。