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读写Redis数据库操作示例
Mar 18 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python与caffe改变通道顺序的方法
Aug 04 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
对python 中class与变量的使用方法详解
Jun 26 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
django orm模块中的 is_delete用法
May 20 Python
python名片管理系统开发
Jun 18 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
pytorch 带batch的tensor类型图像显示操作
May 20 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
检查url链接是否已经有参数的php代码 添加 ? 或 &
2010/02/09 PHP
php实现的漂亮分页方法
2014/04/17 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
怎样使用Python脚本日志功能
2016/08/14 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
青年教师培训方案
2014/02/06 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
教师网络培训感言
2014/03/09 职场文书
企业文化理念标语
2014/06/10 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
工作报告范文
2019/06/20 职场文书