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 16 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
Python列表的切片实例讲解
Aug 20 Python
基于python实现雪花算法过程详解
Nov 16 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
python实现简单的聊天小程序
Jul 07 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代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
Linux机考试题
2015/10/16 面试题
大学生农村教师实习自我鉴定
2013/09/21 职场文书
科室工作的个人自我评价
2013/10/30 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
法律专业求职信
2014/05/24 职场文书
2014年减负工作总结
2014/12/10 职场文书
入党群众意见范文
2015/06/02 职场文书
如何写好活动总结
2019/06/21 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python