一、本程序的起源
  当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件。我对此事是非常看重的,因此经常使用浏览器,打开gmail去查看刘老师有没有给我回复。因为gmail的新邮件推送的功能仅限于打开浏览器,这样还是非常麻烦的。因此,我就想编写一个程序,这个程序的功能是发现gmail邮箱中的新邮件,并推送给我。
  这个程序最初的需求还是很简单的,只是发现新邮件,然后把有新邮件这个消息推送给我。由于我想学习python语言,因此考虑用python来开发。于是,我就从零开始了这个程序的开发。

二、准备工作
  由于此前没有接触过Python,因此熟悉python语言是我第一步需要做的。
  《A Byte of Python》是我学习Python第一本书。这本书是如它的名字一样,是本Python入门级教程,这本书面向的对象最低标准是没有接触过编程的人(够低的吧)。书中的内容不是很多,不过语言通俗易懂,还是很容易的把我领进了Python的大门。这本书涵盖从安装Python、操作数和表达式、模块、数据结构、输入输出、异常、标准库函数、简单实例等非常基础的内容。是一本很推荐的入门级教程,不论是谁我想都可以在两天内完成。通过这本书的学习,我对Python语法,数据结构、函数等有了大致的了解。
  看完《A Byte of Python》只是一小步,对于完成我最终的目标还是差很远,甚至,当时我都不知道从哪开始下手,所以又下载了一本《Learning Python.4th.Edition》,希望能够深入学习Python。打开这本书之后,我发现内容实在是太多了,一共有1K+页。我想,就这么只抓基础,没有重点的学习也不是事,不过程序由于是和邮件相关的,因此,肯定是网络编程,因此,我从网上下载了本《Foundations of Python3 Network Programming. 2nd Edition》,网上有中文译本,不过是第一版。第一版还是和第二版在需要用到的内容上有些不一样的,有些第一版的内容已经被淘汰了,另外,我希望能够锻炼我的英文阅读能力,基于以上两点,我在学习的时候是以英文版为主,当有不理解的地方借鉴第一版中文版。这本书还是很详细的介绍了Python网络编程的基础知识,对本程序的开发帮助很大。

三、学习、开发
  接下来就是工程量最大的学习、开发阶段了。学习和开发是相辅相成同时进行的,在学习过程中,根据学习的内容,也曾改变过程序的设计。
  在学习本书时,也不是从头看到尾,只是看和我的需求有关系的

  • E-mail Compotion and Decoding
  • SMTP
  • POP
  • IMAP

这几章。这几章的内容与开发email相关程序息息相关。
  除此之外,最有用的参考书籍就是官方文档,这其实比这本书更加有用。以后Python开发中会经常用到。

四、接下来的故事

  具体学习博客,请看我下一篇博客:用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)

  程序功能及完整代码,请看:用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)

用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)的更多相关文章

  1. Python 中格式化字符串 % 和 format 两种方法之间的区别

    Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...

  2. linux配置邮箱服务

    配置邮箱服务Linux常见的邮箱客户端是mail或mutt:服务端有sendmail服务(centos 5).postfix服务(centos 6).这里我们不使用本地的邮件服务,而是使用本地的邮件客 ...

  3. 微服务中台落地 中台误区 当中台遇上DDD,我们该如何设计微服务

    小结: 1. 微服务中台不是 /1堆砌技术组件就是中台 /2拥有服务治理就是中台 /3增加部分业务功能就是中台 /4Cloud Native 就是中台 https://mp.weixin.qq.com ...

  4. 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)

    一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...

  5. 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)

    这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析).SMTP.POP.IMAP 如上篇博客所讲,我学习过程参 ...

  6. 使用AWS亚马逊云搭建Gmail转发服务(二)

    title: 使用AWS亚马逊云搭建Gmail转发服务(二) author:青南 date: 2014-12-31 14:44:27 categories: [Python] tags: [Pytho ...

  7. 使用AWS亚马逊云搭建Gmail转发服务(一)

    title: 使用AWS亚马逊云搭建Gmail转发服务(一) author:青南 date: 2014-12-30 15:41:35 categories: Python tags: [Gmail,A ...

  8. 使用AWS亚马逊云搭建Gmail转发服务(三)

    title: 使用AWS亚马逊云搭建Gmail转发服务(三) author:青南 date: 2015-01-02 15:42:22 categories: [Python] tags: [log,G ...

  9. Linux下设置python脚本文件为服务

    (最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...

随机推荐

  1. HDU 3117 Fibonacci Numbers(围绕四个租赁斐波那契,通过计++乘坐高速动力矩阵)

    HDU 3117 Fibonacci Numbers(斐波那契前后四位,打表+取对+矩阵高速幂) ACM 题目地址:HDU 3117 Fibonacci Numbers 题意:  求第n个斐波那契数的 ...

  2. EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

    大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...

  3. Effective C++ 7

    7.预先准备足够的内存情况. new当内存分配请求无法完成,它会抛出一个异常,怎么办异常,这是一个非常现实的,绝对必要的所遇到的问题后. 于c一般使用宏来分配内存和测试分发成功.c++中产阶级似下面的 ...

  4. "错: void 值不被忽略,因为预期"解决

    在C陷阱与缺陷,实现assert什么时候,在这个过程很聪明,化为一个表达式,在当条件为假时就会调用_assert_error报错并终止程序. 刚開始_assert_error 的返回值类型是 void ...

  5. hdu 新生晚会

    Problem Description 开学了,杭电又迎来了好多新生.ACMer想为新生准备一个节目.来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?   ...

  6. 《剑指offer》 相应 在线测试地址

    <剑指Offer>面试题集收录汇总 面试题1 赋值运算符函数 不适合在线模式 面试题2 实现Singleton模式 不适合在线模式 面试题3 二维数组中的查找 已收录 面试题4 替换空格 ...

  7. js 利用iframe和location.hash跨域解决的方法,java图片上传回调JS函数跨域

    奶奶的:折腾了我二天,最终攻克了!网上有非常多样例. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 測试通过 js :这个主页面,部分代码, functi ...

  8. 解析http302重定向url

    bool urlparse(const u_char* data,u_int len) { ip_header *ih; udp_header *uh; tcp_header *th; u_short ...

  9. HQL语句大全

    第 15 章 HQL: Hibernate查询语言 Hibernate配备了一种很强大的查询语言,这样的语言看上去很像SQL.可是不要被语法结构 上的类似所迷惑,HQL是很有意识的被设计为全然面向对象 ...

  10. Asp.Net MVC5入门学习系列④

    原文:Asp.Net MVC5入门学习系列④ 添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概 ...