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实现哈希表
Feb 07 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
Python实现简单的用户交互方法详解
Sep 25 Python
python3获取当前目录的实现方法
Jul 29 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
python+tkinter实现学生管理系统
Aug 20 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
python爬虫基础知识点整理
Jun 02 Python
在终端启动Python时报错的解决方案
Nov 20 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP系统流量分析的程序
2006/10/09 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
python验证身份证信息实例代码
2019/05/06 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
python适合做数据挖掘吗
2020/06/16 Python
python 6种方法实现单例模式
2020/12/15 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
经销商培训邀请函
2014/01/21 职场文书
运动会广播稿80字
2014/01/23 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
大连星海广场导游词
2015/02/10 职场文书
离职证明范本
2015/06/12 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python