一、本程序的起源
  当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件。我对此事是非常看重的,因此经常使用浏览器,打开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. 1005. 继续(3n+1)猜想 (25) (ZJUPAT 数学)

    主题链接:http://pat.zju.edu.cn/contests/pat-b-practise/1005 卡拉兹(Callatz)猜想已经在1001中给出了描写叙述.在这个题目里.情况略微有些复 ...

  2. 触摸屏touchstart 与 click

    设计效果:当手指点击或触摸红框线menuList之外的部分时,弹框menuList消失. 问题:在优化触屏版的时候发现如图问题.当menuList弹出.手指触摸屏幕向下滑动时,menuList弹框不消 ...

  3. 打破了中国电信华为无线路由猫(HG522-C)自己主动拨号+任意数量的计算机+iTV

    中国电信路由猫去势后总是我的好E家里到处都是卖包(够坏垄断市场.有霸王条款多,例如,他们必须用自己的手机,同时计算机的最大数量的在线等),我曾破获另一家中国电信路由猫.非常easy,由U它磁盘恢复默认 ...

  4. JavaScript中,关于new的那些事

    这篇文章是自己对new学习过程中的一些理解,有不对的地方希望指出,接受组织的批评教育. 导火线,前段时间学习jQuery的时候,看到源码中有这样一段: jQuery = function(select ...

  5. 三星GT-S7572换屏幕教程

    家里人手机被摔坏了,尽管不是什么值钱的手机.可是自从上了大学之后,就一直认为赚钱真的非常不easy,不到逼不得已,就不要乱花钱.于是,就从淘宝上买了外屏.以下是我在淘宝上的链接:点击打开链接.好不ea ...

  6. Spring之使用Annotation注解开发项目

    我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...

  7. 小公司免费的ERP软件

    http://www.2bizbox.cn/ https://www.odoo.com/

  8. leetcode第11题--Container With Most Water

    Problem: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate ...

  9. codeforces #257 C称号Jzzhu and Chocolate

    职务地址:http://codeforces.com/contest/450/problem/C 这次CF的时候绝壁脑残了. ..A题和C题都出现了脑残失误... 唯一一个AC的B题还是被HACK了. ...

  10. Reporting Service部署之访问权限

    原文:Reporting Service部署之访问权限 SQL Server Reporting Services 并非专门设计用于 Internet 报表部署方案,但是您可以成功地将 Reporti ...