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使用defaultdict读取文件各列的方法
May 11 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
Python 忽略warning的输出方法
Oct 18 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
实例详解Python装饰器与闭包
Jul 29 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
pytorch 更改预训练模型网络结构的方法
Aug 19 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
python下载的库包存放路径
Jul 27 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
php表单处理操作
2017/11/16 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js获取系统的根路径实现介绍
2013/09/08 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Django celery异步任务实现代码示例
2020/11/26 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
Linux操作面试题
2012/05/16 面试题
个人自我鉴定写法
2013/11/30 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers