利用python发送和接收邮件


Posted in Python onSeptember 27, 2016

关于电子邮件 

大学之前,基本不用邮箱,所以基本感觉不到它的存在,也不知道有什么用;然而大学之后,随着认识的人越来越多,知识越来越广泛,邮箱已然成为很重要的通讯工具,大学一些课程作业需要有邮箱发给老师,注册网站需要邮箱,找工作也需要邮箱;那么电子邮箱是什么原理呢? 

发送邮件 

SMTP协议 

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,只要几分钟。 

python中的SMTP模块 

使用SMTP的基本步骤
 1.连接服务器
 2.登录
 3.发送服务请求
 4.退出

import smtplib
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr


def send_email(from_addr, to_addr, subject, password):
  msg = MIMEText("邮件正文",'html','utf-8')
  msg['From'] = u'<%s>' % from_addr
  msg['To'] = u'<%s>' % to_addr
  msg['Subject'] = subject

  smtp = smtplib.SMTP_SSL('smtp.163.com', 465)
  smtp.set_debuglevel(1)
  smtp.ehlo("smtp.163.com")
  smtp.login(from_addr, password)
  smtp.sendmail(from_addr, [to_addr], msg.as_string())


if __name__ == "__main__":
  # 这里的密码是开启smtp服务时输入的客户端登录授权码,并不是邮箱密码
  # 现在很多邮箱都需要先开启smtp才能这样发送邮件
  send_email(u"from_addr",u"to_addr",u"主题",u"password")

上面演示了用smtplib来发送邮件,并且使用了SSL加密,这样相对安全,使用了email来构造邮件的内容,这里发送的是纯文本的内容,我觉得最应该注意的就是这里邮箱的密码。另外各个公司的邮件服务器和端口都可能不同,使用前可以先查一下 

这里列几个常用的:

利用python发送和接收邮件

接收邮件 

POP3和IMAP 

POP是指邮局协议,目的是让用户可以访问邮箱服务器中的邮件,允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。 

后来又出现了IMAP协议(Interactive Mail Access Protocol),即交互式邮件访问协议,与POP3的不同在于:开启了IMAP后,在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。 

使用POP3 

python的poplib模块支持POP3,基本步骤:
 1.连接到服务器
 2.登录
 3.发出服务请求
 4.退出 

poplib的常用方法:

利用python发送和接收邮件

例子

from poplib import POP3

p = POP3('pop.163.com')
p.user('xxxxxxx@163.com')
p.pass_('xxxxxxxx')

p.stat()
...

p.quit()

使用IMAP 

python中的imaplib包支持IMAP4 

常用方法:

利用python发送和接收邮件

例子

import getpass, imaplib

M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
  typ, data = M.fetch(num, '(RFC822)')
  print 'Message %s\n%s\n' % (num, data[0][1])
M.close()
M.logout()

更详细的内容可以看官方文档:
 •smtplib模块:https://docs.python.org/2/library/smtplib.html

 •email模块:https://docs.python.org/2/library/email.html

 •poplib模块:https://docs.python.org/2/library/poplib.html

 •imaplib模块:https://docs.python.org/2/library/imaplib.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux下python抓屏实现方法
May 22 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
python绘制漏斗图步骤详解
Mar 04 Python
python实现QQ批量登录功能
Jun 19 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
实例讲解Python中sys.argv[]的用法
Jun 03 Python
python opencv通过4坐标剪裁图片
Jun 05 Python
实现python版本的按任意键继续/退出
Sep 26 #Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 #Python
利用Python为iOS10生成图标和截屏
Sep 24 #Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 #Python
Python 爬虫模拟登陆知乎
Sep 23 #Python
python 自动化将markdown文件转成html文件的方法
Sep 23 #Python
Python增量循环删除MySQL表数据的方法
Sep 23 #Python
You might like
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
js控制table合并具体实现
2014/02/20 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
利用Python实现Windows定时关机功能
2017/03/21 Python
django初始化数据库的实例
2018/05/27 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python递归法解决棋盘分割问题
2019/07/17 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
夜大自我鉴定
2013/10/31 职场文书
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
运动会广播稿200米
2014/01/27 职场文书
数学教学随笔感言
2014/02/17 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
个人四风对照检查材料
2014/09/26 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
初中毕业生自我评价
2015/03/02 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书