用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) ------------------------------------------------------------------------ ...
随机推荐
- 【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
(1)对于一个新项目:如何使用GIT?在新项目的过程,例如,您可以选择下面的复选框. (2)针对老项目,加入GIT功能. --在终端.cd到项目文件夹 --然后输入git init,初始化一个.git ...
- 随手记UIKit Dynamics
以今年的优势WWDC品行,我记得一些明年的元素.一些博客上找到了新的功能没有被记录.认为iOS 8全力以赴.iOS 7该属性不随手记录为时已晚 :) 参考WWDC 2013的Session Video ...
- C#操作Xml:通过XmlDocument读写Xml文档
什么是Xml? Xml是扩展标记语言的简写,是一种开发的文本格式.关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210.如果你不知道 ...
- Android 自己的自动化测试(5)<robotium>
大约Android自己的自动化测试UI测试,前出台Android 自己主动化測试(4)<uiautomator>, 在android原生的单元測试框架上,利用uiautomator.jar ...
- SP服务商收益究竟有多大?
揭秘spspsp服务商怎样盈利?代办sp服务商又称持增值电信----移动网信息服务许可证信息提供商,sp主要业务有短信彩信(手机报.短信群发.客服系统).WAP.彩铃.IVR.百宝箱.JAVA游戏.B ...
- DevExpress的Web控件汉化方法
原文:DevExpress的Web控件汉化方法 项目中用到devexpress的web控件,机器没有安装devexpress控件,直接在项目中引用的dev的dll,项目运行时发现都是英文界面,所以解决 ...
- Python学习笔记16:标准库多线程(threading包裹)
Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率 ...
- Hack 语言学习/参考---1.2 Hack Background
Hack Background Facebook was initially built with PHP. Parameters and return types were specified in ...
- java环境变量配置四种方法
原文:java环境变量配置四种方法 Java编程首要工作就是安装JDK(Java Development Kit).一通“NEXT”点完安装后就是最重要的环境变量设置了.也许有人会问为什么要设置环境变 ...
- PHP: 判断是否是JSON数据
原文:PHP: 判断是否是JSON数据 首先要记住json_encode返回的是字符串, 而json_decode返回的是对象. 判断数据不是JSON格式: function is_not_json( ...