今天记录一下怎样使用python收发邮件,知识要点在python内置的poplib和stmplib模块的使用上。
1. 准备工作
首先,我们须要有一个測试邮箱。我们使用新浪邮箱,并且要进行例如以下设置:
在新浪邮箱首页的右上角找到设置->很多其它设置,然后在左边选择“client/pop/imap/smtp”:
最后,将Pop3/smtp服务的服务状态打开就可以:
2. poplib接收邮件
首先。介绍一下poplib登录邮箱和下载邮件的一些接口:
self.popHost = 'pop.sina.com'
self.smtpHost = 'smtp.sina.com'
self.port = 25
self.userName = 'xxxxxx@sina.com'
self.passWord = 'xxxxxx'
self.bossMail = 'xxxxxx@qq.com'
我们须要如上一些常量,用于指定登录邮箱以及pop。smtpserver及port。我们调用poplib的POP3_SSL接口能够登录到邮箱。
# 登录邮箱
def login(self):
try:
self.mailLink = poplib.POP3_SSL(self.popHost)
self.mailLink.set_debuglevel(0)
self.mailLink.user(self.userName)
self.mailLink.pass_(self.passWord)
self.mailLink.list()
print u'login success!'
except Exception as e:
print u'login fail! ' + str(e)
quit()
在登录邮箱的时候,非常自然,我们须要提供username和password,如上述代码所看到的,使用非常easy。
登录邮箱成功后,我们能够使用list方法获取邮箱的邮件信息。我们看到list方法的定义:
def list(self, which=None):
"""Request listing, return result.
Result without a message number argument is in form
['response', ['mesg_num octets', ...], octets].
Result when a message number argument is given is a
single response: the "scan listing" for that message.
"""
if which is not None:
return self.