摘要:
一、简介
POP(Post Office Protocal)最长用的POP版本是POP3,因此本文是以POP3为主。POP3非常简单,可以用来从邮件服务器上下载邮件,然后删除这些邮件。功能非常有限,后面讲解的IMAP完胜它,不过作为入门级的,还是有必要介绍一下,也对学习SMTP有帮助。
Python提供了poplib模块,它提供了使用POP的便利接口。
二、实例
由于pop3功能较IMAP非常有限,而且我最后的程序并没有使用pop3,所以,不详细讲解,下面通过一个例子来说明下较为常见的功能。
这个例子的功能为进入邮箱,查看所有的邮件。首先显示邮件的发件人、主题,查看邮箱主题内容。
1. 需要模块
import email, poplib, sys
2. 连接POP3服务器,登录个人邮箱账户
poplib提供POP3()方法和POP3_SSL()方法连接POP3服务器,区别和SMTP一样。gmail仍然使用POP3_SSL()方式,并返回class POP3实例
p = poplib.POP3_SSL('pop.gmail.com') 阅读全文
摘要:
一、简介
上面介绍了传统邮件的生成和解析,这些都是non-internet,也就是不需要网络就可一完成的。那么当生成了邮件,下一步就是发送了,本文就讲解利用SMTP协议发送邮件。
正如SMTP(Simple Mail Transfer Protocal)名字一样,只能发送简单邮件。上面讲解就是生成的简单邮件,完全可以通过SMTP协议来发送。
二、SMTP使用方法
Python是通过smtplib模块来实现SMTP的。关于本模块的详细说明,请参考这里。
1. 方法流程
生成message, 连接你的邮箱smtp服务器,登录自己的邮箱帐号, 发送邮件,退出
2. 连接邮箱smtp服务器
一般各大公司的smtp邮箱服务器网址都是形如:smtp.example.com,如gmail的为smtp.gmail.com
连接邮箱smtp服务器使用smtplib.SMTP()和smtplib.SMTP_SSL()方法。SMTP_SSL()方法使用了安全socket层。由于我不求甚解,所以更加详细的说明请见文档。我使用的gmail使用的是SMTP_ 阅读全文
摘要:
一、简介
IMAP(Internet Message Access Protocol),这个协议与POP一样,也是从邮件服务器上下载邮件到本机,不过IMAP比POP的功能要更加强大些,IMAP除支持POP所有功能外,还支持以下功能:
多个邮件文件夹(收件箱、发件箱、垃圾邮件...)
IMAP服务器上进行标记如:Seen, Replied, Read, Deleted
在服务器端的文件夹之间拷贝和移动邮件
...
在IMAP的各版本中,最流行的是IMAP4。我们就使用IMAP4
由于,我需要搜索是否有未读邮件,也就是利用邮件服务器的Flag,所以IMAP是非常适合的,我的程序就利用的是IMAP。
在Python的标准库包含一个imaplib模块,可以利用这个模块。但是,这个模块的缺陷就是把大量解析的工作留给客户端程序员。
二、IMAPClient
IMAPClient是一个非常受欢迎的IMAPCLient包,这个模块不在标准Python库中。IMAPClient包是由一名叫做Menno Smits的Python程序员编写的。官网网址:http:// 阅读全文
摘要:
一、邮件涉及协议及本文说明
1. 协议
SMTP(Simple Mail Transfer Protocal) 简单邮件传输协议,用于发送邮件。
MIME(Mutipurpose Internet Mail Extensions) 多用途互联网邮件扩展,可发送附件。但由于,程序不许要这个功能,因此我们有学习,也就不会出现在本文中。
POP(Post Office Protocal) 邮局协议,一般用POP3。可以用以较为简单的方式接收邮件(从邮件服务器上下载邮件到主机上)。
IMAP(Internet Mail Access Protocal) 也用于接收邮件,功能较POP3更为强大些。
2. 在下面中会更详细的介绍这些协议,以及在Python中的使用方式。
二、邮件格式粗糙解释。
Email在组织的时候遵循header和body的映射模式。而header是固定一些可选的如 From, To, Subject, Date time, Receiver, Message-ID, Content, Attachment。它们的组织形式如:
From: ... 阅读全文
摘要:
这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析)、SMTP、POP、IMAP 如上篇博客所讲,我学习过程参考《Foundations of Python3 Network Programming. 2nd Edition》,代码部分借鉴了其中的例子,但绝对包含自己的东西,特此声明。 如果已经了解了这些知识,请看:用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)E-mail Composition and Decoding一、邮件涉及协议及本文说明1. 协议 SMTP(Simp... 阅读全文