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 str与repr的区别
Mar 23 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
python 堆和优先队列的使用详解
Mar 05 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
Django多数据库的实现过程详解
Aug 01 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Django实现内容缓存实例方法
Jun 30 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
python 多线程共享全局变量的优劣
Sep 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中数组的三种排序方法分享
2012/05/07 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python日期的加减等操作的示例
2017/08/15 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
出国留学自荐信
2013/10/25 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
小学六年级学生评语
2014/04/22 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript