一、电子邮件的历史

1.起源:

1969 Lenoard K. 教授发给同事的“LO”

1971 美国国防部自主的阿帕网(Arpanet)的通讯机制

通讯地址里用@

1987年中国的第一份电子邮件

“Across the Great Wall we can reach every corner in the world"

2.管理程序

Euroda使邮件普及,Netscape,outlook,formail,后来居上;Hotmail使用浏览器发送邮件

3.​参考资料:https://docs.python.org/3/library/email.mime.html

4.邮件工作流程

MUA(MailUserAgent)邮件用户代理

MTA(MailTransferAgent)邮件传输代理

MDA(MailDeliveryAgent)邮件投递代理

laoshi@qq.com, 老师,北京海淀

xuesheng@sina.com, 学生,上海静安区

​流程:

(1)MUA-MTA ,邮件已经在服务器上了

(2)qq MTA-.........-sina MTA,邮件已经在新浪的服务器上

(3)sina MTA-sina MDA,此时邮件已经在你的邮箱上了

(4)sina MDA - MUA (Foxmail/Outlook),邮件下载到本地电脑

​编写程序的过程:

(1)​发送:MUA-MTA with SMTP(SimpleMailTransferProtocal)包含MTA-MTA

(2)接受​:MDA-MUA with POP3 and IMAP:PostOfficeProtocal v3 and InternetMessageAcessProtocal v4

(3)准备工作:注册邮箱(以qq邮箱为例),第三方邮箱需要设置,以qq邮箱为例​:进入设置中心,取得授权码

二、敲代码

1.SMTP协议负责发送邮件

(1)使用email模块构建邮件

(2)使用smtplib模块发送邮件

#导入相应的包import smtplibfrom email.mime.text import MIMEText#MIMEText三个主要参数:1.邮件内容;2.MIME子类型,在此案例中我们用plain表示text类型;3.邮件编码格式msg = MIMEText("hello ,I am ruigege","plain","utf-8")#发送email地址,此处地址直接使用我的qq邮箱,密码一般许哟啊临时输入,此处偷懒from_addr = "1215217867@qq.con"#此处密码是经过申请设置之后的授权码,不是自己的qq号码密码,相当于github中的privateTokenfrom_pwd = ""#收件人信息#此处使用qq邮箱,我给自己发送吧,就不打扰别人了to_addr = "1215217867@qq.com"#输入SMTP服务器地址#此处根据不同的邮件服务商有不同的值#现在基本任何一家邮件服务商,如果采用第三方收发邮件,都需要开启授权选项#腾讯qq邮箱的smtp地址是smtp.qq.comsmtp_srv = "smtp.qq.com"try:    #两个参数:第一个是服务器地址,但一定是bytes格式,所以需要编码;第二个参数是服务器的接受访问端口    srv = smtplib.SMTP_SSL(smtp_srv.encode(),465)#SMTP协议默认端口25    #登录邮箱发送    srv.login(from_addr,from_pwd)    #发送邮件:三个参数1.发送地址;2.接受地址,必须是List形式;3.发送内容,作为字符串进行发送    srv.sendmail(from_addr,[to_addr],msg.as_string())    srv.quit()except Exception as w:    print(w)

2.POP3协议用于接受邮件

五、源码

D55_1_MailProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D55_1_MailProgramme.py

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载55-Mail编程的更多相关文章

  1. 从菜鸟到大神:Java高并发核心编程(连载视频)

    任何事情是有套路的,学习是如此, Java的学习,更是如此. 本文,为大家揭示 Java学习的套路 背景 Java高并发.分布式的中间件非常多,网上也有很多组件的源码视频.原理视频,汗牛塞屋了. 作为 ...

  2. Java学习之网络编程实例

    转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 多谢分享 网络编程 网络编程对于很多的初学者来说,都是很向往的一 ...

  3. Java进阶之网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

  4. Java中的网络编程

    ​ Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端 ...

  5. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  6. 浅谈Java 8的函数式编程

    函数式编程语言是什么? 函数式编程语言的核心是它以处理数据的方式处理代码.这意味着函数应该是第一等级(First-class)的值,并且能够被赋值给变量,传递给函数等等.(转载自http://xz.p ...

  7. paip.提升性能--多核cpu中的java/.net/php/c++编程

    paip.提升性能--多核cpu中的java/.net/php/c++编程 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http ...

  8. 读懂Java中的Socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  9. 读懂Java中的Socket编程(转)

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  10. 黑马程序员:Java基础总结----网络编程

    黑马程序员:Java基础总结 网络编程   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络编程 网络通讯要素 . IP地址 . 网络中设备的标识 . 不易记忆,可用 ...

随机推荐

  1. Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  2. 第三方OAuth授权登录,QQ、微信(WeChat)、微博、GitHub、码云(Gitee)、淘宝(天猫)、微软(Microsoft )、钉钉、谷歌(Google)、支付宝(AliPay)、StackOverflow

    Netnr.Login 第三方OAuth授权登录 支持第三方登录 三方 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 安装 ( ...

  3. CSS——overflow的参数以及使用

    学习网站:https://developer.mozilla.org/zh-CN/docs/Web/CSS/overflow

  4. JavaEE基础(06):Servlet整合C3P0数据库连接池

    本文源码:GitHub·点这里 || GitEE·点这里 一.C3P0连接池 1.C3P0简介 C3P0是一个开源的JDBC连接池,应用程序根据C3P0配置来初始化数据库连接,可以自动回收空闲连接的功 ...

  5. 流分析 Stream Analytics-实时数据流式处理,可处理来自数百万台 IoT 设备的数据

    典型的物联网架构中,有实时数据分析的需求,在Azure中,流分析(stream analytics)就是这样的服务,它可以存在云中或者部署到边缘设备上. 流分析的基本概念: https://v.qq. ...

  6. tp5.1批量删除商品

    选中要删除的商品,点击批量删除 先在控制器使用sql语句查出商品信息goods 然后在html源码中使用goods变量. <table> {foreach $goods as $item} ...

  7. 通过谷歌浏览器从官网下载Android Studio

    谷歌访问助手安装教程参考:https://www.cnblogs.com/waiwai14/p/11697371.html 谷歌访问助手下载地址:https://pan.baidu.com/s/1YH ...

  8. 林克的小本本之——HCL网络知识随笔

    单臂路由 单臂路由是一种通过在路由器的一个接口上配置逻辑接口,来实现不同Vlan之间互通的方法. 实例: #配置SW1的VLAN [SW1]vlan 2 #配置端口vlan略 [SW1]int g1/ ...

  9. Cross-Site Scripting:Persistent 跨站点脚本:持久性

  10. weed3-2.2.细讲插入和更新

    Weed3 一个微型ORM框架(只有0.1Mb哦) 源码:https://github.com/noear/weed3 源码:https://gitee.com/noear/weed3 这篇重点讲讲插 ...