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 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
python实现kmp算法的实例代码
Apr 03 Python
python进程的状态、创建及使用方法详解
Dec 06 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
python3.4中清屏的处理方法
Jul 06 Python
Python 如何安装Selenium
May 06 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下网站防IP攻击代码,超级实用
2010/10/24 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
js实现移动端轮播图效果
2020/12/09 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
Django实现跨域请求过程详解
2019/07/25 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
工程师自我评价怎么写
2013/09/19 职场文书
英文自荐信常用句子
2014/03/26 职场文书
初三开学计划书
2014/04/27 职场文书
地震捐款倡议书
2014/08/29 职场文书
员工年终自我评价
2014/09/14 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
摘录式读书笔记
2015/07/01 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle