python操作gmail实例


Posted in Python onJanuary 14, 2015

本文实例讲述了python操作gmail的方法。分享给大家供大家参考。

具体实现方法如下:

import imaplib, re

 

class pygmail(object):

    def __init__(self):

        self.IMAP_SERVER='imap.gmail.com'

        self.IMAP_PORT=993

        self.M = None

        self.response = None

        self.mailboxes = []

 

    def login(self, username, password):

        self.M = imaplib.IMAP4_SSL(self.IMAP_SERVER, self.IMAP_PORT)

        rc, self.response = self.M.login(username, password)

        return rc

 

    def get_mailboxes(self):

        rc, self.response = self.M.list()

        for item in self.response:

            self.mailboxes.append(item.split()[-1])

        return rc

 

    def get_mail_count(self, folder='Inbox'):

        rc, self.response = self.M.select(folder)

        return self.response[0]

 

    def get_unread_count(self, folder='Inbox'):

        rc, self.response = self.M.status(folder, "(UNSEEN)")

        unreadCount = re.search("UNSEEN (\d+)", self.response[0]).group(1)

        return unreadCount

 

    def get_imap_quota(self):

        quotaStr = self.M.getquotaroot("Inbox")[1][1][0]

        r = re.compile('\d+').findall(quotaStr)

        if r == []:

            r.append(0)

            r.append(0)

        return float(r[1])/1024, float(r[0])/1024

 

    def get_mails_from(self, uid, folder='Inbox'):

        status, count = self.M.select(folder, readonly=1)

        status, response = self.M.search(None, 'FROM', uid)

        email_ids = [e_id for e_id in response[0].split()]

        return email_ids

 

    def get_mail_from_id(self, id):

        status, response = self.M.fetch(id, '(body[header.fields (subject)])')

        return response

 

    def rename_mailbox(self, oldmailbox, newmailbox):

        rc, self.response = self.M.rename(oldmailbox, newmailbox)

        return rc

 

    def create_mailbox(self, mailbox):

        rc, self.response = self.M.create(mailbox)

        return rc

 

    def delete_mailbox(self, mailbox):

        rc, self.response = self.M.delete(mailbox)

        return rc

 

    def logout(self):

        self.M.logout()

 

if __name__ =="__main__":

    demo=pygmail()

    demo.login("renwenchao888@gmail.com","qqq191430791")

    mailBoxex=demo.get_mailboxes()

    for i in demo.response:

        print i

    demo.logout()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现统计英文单词个数及字符串分割代码
May 28 Python
Python实现图像几何变换
Jul 06 Python
Python 多线程抓取图片效率对比
Feb 27 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
python操作列表的函数使用代码详解
Dec 28 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
django ORM之values和annotate使用详解
May 19 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
Python中的装饰器用法详解
Jan 14 #Python
python登陆asp网站页面的实现代码
Jan 14 #Python
Python的面向对象思想分析
Jan 14 #Python
为python设置socket代理的方法
Jan 14 #Python
Python单例模式实例分析
Jan 14 #Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 #Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 #Python
You might like
国内php原创论坛
2006/10/09 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php返回json数据函数实例
2014/10/09 PHP
smarty简单分页的实现方法
2014/10/27 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
微信自定义分享php代码分析
2016/11/24 PHP
读jQuery之三(构建选择器)
2011/06/11 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python挖矿算力测试程序详解
2019/07/03 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
化工专业个人的求职信范文
2013/11/28 职场文书
社团活动总结范文
2014/04/26 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
介绍信样本
2015/01/31 职场文书
新党员入党决心书
2015/09/22 职场文书