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中的自定义函数学习笔记
Sep 23 Python
python搭建微信公众平台
Feb 09 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
python递归法解决棋盘分割问题
Jul 17 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
大数据分析用java还是Python
Jul 06 Python
Python ConfigParser模块的使用示例
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
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
javascript轮播图算法
2016/10/21 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
几行js代码实现自适应
2017/02/24 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
python操作MongoDB基础知识
2013/11/01 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python归并排序算法过程实例讲解
2020/11/04 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
公司董事长职责
2013/12/12 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
创业计划书之烤红薯
2019/09/26 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技