用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)
一、本程序的起源
当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件。我对此事是非常看重的,因此经常使用浏览器,打开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开发中会经常用到。
- 官方网址
- Python3官方教程
- Python3标准库:对于我来说,看得最多的就是它了,通过它来查看某些类、函数的功能、用法等。
四、接下来的故事
具体学习博客,请看我下一篇博客:用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)
程序功能及完整代码,请看:用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)的更多相关文章
- Python 中格式化字符串 % 和 format 两种方法之间的区别
Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...
- linux配置邮箱服务
配置邮箱服务Linux常见的邮箱客户端是mail或mutt:服务端有sendmail服务(centos 5).postfix服务(centos 6).这里我们不使用本地的邮件服务,而是使用本地的邮件客 ...
- 微服务中台落地 中台误区 当中台遇上DDD,我们该如何设计微服务
小结: 1. 微服务中台不是 /1堆砌技术组件就是中台 /2拥有服务治理就是中台 /3增加部分业务功能就是中台 /4Cloud Native 就是中台 https://mp.weixin.qq.com ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)
这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析).SMTP.POP.IMAP 如上篇博客所讲,我学习过程参 ...
- 使用AWS亚马逊云搭建Gmail转发服务(二)
title: 使用AWS亚马逊云搭建Gmail转发服务(二) author:青南 date: 2014-12-31 14:44:27 categories: [Python] tags: [Pytho ...
- 使用AWS亚马逊云搭建Gmail转发服务(一)
title: 使用AWS亚马逊云搭建Gmail转发服务(一) author:青南 date: 2014-12-30 15:41:35 categories: Python tags: [Gmail,A ...
- 使用AWS亚马逊云搭建Gmail转发服务(三)
title: 使用AWS亚马逊云搭建Gmail转发服务(三) author:青南 date: 2015-01-02 15:42:22 categories: [Python] tags: [log,G ...
- Linux下设置python脚本文件为服务
(最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...
随机推荐
- Java设计模式(四) 装饰 代理模式
(七)装饰 Decorator 装饰是一个对象,以动态地增加一些新功能. 象与被装饰的对象须要实现同一个接口.装饰对象持有被装饰对象的实例. interface DecoratorSourceable ...
- 使用Blend的一些问题
原文:使用Blend的一些问题 WPF开发,界面处理首选Blend,如果你开发了两年WPF都没接触过blend(当然这种几率不高),或者你刚接触WPF,可以考虑使用Blend,这货也算得上一个神器,上 ...
- HTML5 画一张图
笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/33344289 一.绘制图像 使用drawImage()方法绘制图像. 画图环 ...
- java_log4j 经典配置
程序加载制定日志文件 public static final String log4j = "log4j.xml"; /** * @declare 加载log4j * @throw ...
- CocoaPods 建立私有仓库
CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便. [个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像 ...
- Socket 由浅入深系列--------- 简单实现编程(三)
socket 由浅入深 原理(一)介绍了一些,以下也就是简单实现,并未考虑其它性能化! 使用TCP的server客户机举例 server 设置一个简单的TCPserver涉及下列步骤: 调用 sock ...
- 动画云创始人胥克谦&课程格子创始人李天放分享创业经历
原文地址:http://student.csdn.net/mcd/topic/163587/955044 2014年10月18日在北京科技大学成功举办了CSDN高校俱乐部全国巡讲,现场參会学生有一百余 ...
- NodeJS,我对“高、高、非”的一些看法
·众所周知 NodeJS三大神器"事件驱动,V8,回调函数". ·事件驱动,故名思议:等快递和收快递区别.NodeJS将原先大牛们掌握的神神秘秘的EPOLL走向大众化,这点是最大的 ...
- 【翻译自mos文章】SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描
SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描 參考原文: SYS_OP_C2C Causing Full Table/Index Scans (Doc ID 732666.1) 适用于: ...
- angularJS看MVVM
从angularJS看MVVM javascript厚积薄发走势异常迅猛,导致现在各种MV*框架百家争雄,MVVM从MVC演变而来,为javascript注入了全新的活力.我工作的业务不会涉及到a ...