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中文件变化监控示例(watchdog)
Oct 16 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
解决python线程卡死的问题
Feb 18 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
Python类和实例的属性机制原理详解
Mar 21 Python
pygame实现弹球游戏
Apr 14 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
php中截取字符串支持utf-8
2007/01/18 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
PHP重载基础知识回顾
2020/09/10 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
python datetime处理时间小结
2020/04/16 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
运输服务质量承诺书
2014/03/27 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
求职意向书范本
2015/05/11 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL