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命令行传递实例化对象的方法
Nov 02 Python
Python实现的桶排序算法示例
Nov 29 Python
Django 实现下载文件功能的示例
Mar 06 Python
从django的中间件直接返回请求的方法
May 30 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
Python调用shell命令常用方法(4种)
May 11 Python
sklearn的predict_proba使用说明
Jun 28 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
Python中time与datetime模块使用方法详解
Mar 31 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
mysq GBKl乱码
2006/11/28 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
Python中的index()方法使用教程
2015/05/18 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
法国在线药房:DoctiPharma
2020/10/21 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
财务出纳岗位职责
2014/02/03 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书