整个邮件系统是怎样工作的

  邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook、foxmail这些邮件客户端软件。

  当我们要发邮件时客户端就通过smtp协议与服务端进行通信把我们的邮件发到服务器端,比如我用的QQ邮件那么我发的邮件一定是先去了QQ

  邮箱的服务器,这个时候服务器会看一下我发送的目标地址是多少,如果也是QQ邮箱用户,那么它就直接把信投递到对应的用户;如果目标

  地址不是QQ邮箱那么比如说是1234@162.com,那么它会把邮件发送到162邮箱的服务器,162邮箱的服务器会把邮件投递到目标用户。投递

  完成后邮件也只是进了目标用户的邮桶,用户想要看邮件还要取出来才行;邮件客户端取邮件的过程用的是pop3协议,当然还有另一个协议

  也是可以用来取邮件的它就imap协议。

python3怎么发邮件呢

  python3中我们可以直接使用smtplib这个标准库进行邮件的发送,但是为你发送的邮件对“人类”更加的友好,你通常还要加上email这个

  标准库

1、了解一下最简单的邮件发送程序

from smtplib import SMTP_SSL

with SMTP_SSL(host="smtp.qq.com") as smtp :
smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxx')
smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com",msg="hello world")

  代码的逻辑和我们日常使用邮箱时的过程是一样的、先用自己的账号密码登录上邮箱、接下来就可以发送邮件了;上面的代码

  并没有用到email标准库,所以它发出来的邮件一个正常的人类是看不懂的;但是对于写代码来说它保留了主干,更有利于我

  们理解发送邮件的过程

2、来一个看的下去的例子

from smtplib import SMTP_SSLfrom email.mime.text import MIMEText

with SMTP_SSL(host="smtp.qq.com") as smtp :
smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxxxx') msg = MIMEText("这是来自Python3的一封测试邮件",_charset="utf8")
msg["Subject"] = "测试邮件"
msg["from"] = '1721900707@qq.com'
msg["to"] = '1721900707@qq.com' smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com", msg=msg.as_string())

  通过于email库配合使用后邮件已经基本人类可读了

  

  

----

用Python3发送邮件详解的更多相关文章

  1. Python3语法详解

    一.下载安装 1.1Python下载 Python官网:https://www.python.org/ 1.2Python安装 1.2.1 Linux 平台安装 以下为在Unix & Linu ...

  2. python:利用smtplib模块发送邮件详解

    自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用例后,将测试报告(HTML.截图.附件)通过邮件方式发送. 首先我们要做: 进入163邮箱,点击设置中的pop3/ ...

  3. Python3字符串 详解

    Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. Python 访问字符串中的值 P ...

  4. python:利用smtplib发送邮件详解

    本文转自:https://www.cnblogs.com/insane-Mr-Li/p/9121619.html 自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用 ...

  5. python3拆包详解

    对于可迭代对象,如元组.列表.字符串.集合.字典这些可迭代对象都可以被拆包,拆包是指将一个结构中的数据拆分为多个单独变量中.拆包的方式大致有两种,一种是以变量的方式来接收,另一种是用'*'号.下面先讲 ...

  6. python3 常用模块详解

    这里是python3的一些常用模块的用法详解,大家可以在这里找到它们. Python3 循环语句 python中模块sys与os的一些常用方法 Python3字符串 详解 Python3之时间模块详述 ...

  7. ActiveMQ基本详解与总结

    MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.消息传 ...

  8. ActiveMQ基本详解与总结& 消息队列-推/拉模式学习 & ActiveMQ及JMS学习

    转自:https://www.cnblogs.com/Survivalist/p/8094069.html ActiveMQ基本详解与总结 基本使用可以参考https://www.cnblogs.co ...

  9. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

随机推荐

  1. MAC快捷方式记录

    刚刚转到MAC,很多功能发现不能用,总结一下: 刷新页面:command+r 命令行,到行首:control+a 命令行,到行尾:control+e vim,到行尾:shift+$ vim,到行首:s ...

  2. SpringMVC学习笔记二:常用注解

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html  参考:http://www.cnblogs.com/leskang/p/5445698 ...

  3. 三种分布式对象主流技术——COM、Java和COBRA

    既上一遍,看到还有一遍将关于 对象的, 分布式对象, 故摘抄入下: 目前国际上,分布式对象技术有三大流派——COBRA.COM/DCOM和Java.CORBA技术是最早出现的,1991年OMG颁布了C ...

  4. C# 多线程并发锁模式-总结

    开篇: 互斥还是lock Monitor Mutex 模式! Muex Monitor lock AutoEventSet ManualEventSet 后续的 ReaderWriterLock   ...

  5. poj 2059 单调栈

    题意:求柱状图中最大矩形面积. 单调栈:顾名思义就是栈内元素单调递增的栈. 每次插入数据来维护这个栈,假设当前须要插入的数据小于栈顶的元素,那就一直弹出栈顶的元素.直到满足当前须要插入的元素大于栈顶元 ...

  6. Linux中svn的使用

    1. 安装Linux 执行如下命令,中间会出现一次提示,选y即可 yum install subversion 2. 创建资源库位置 svnadmin create /usr/java/testJen ...

  7. jsp空指针异常

    1.Tomcat启动后访问首页报错 显示JSP 空指针异常 这哥们是因为lib下jar包和Tomcat下的jar包冲突,去掉lib下 servlet-api-2.5.jar 以及jsp-api.jar ...

  8. PIL笔记

    图片颜色的类型 1 (1-bit pixels, black and white, stored with one pixel per byte) L (8-bit pixels, black and ...

  9. libev与libevent区别

    摘自stackflow的回答,主要从架构上说明了二者的区别: As for design philosophy, libev was created to improve on some of the ...

  10. ipsec在企业网中的应用(IKE野蛮模式)(转)

    from:http://lulu1101.blog.51cto.com/4455468/817954 ipsec在企业网中的应用(IKE野蛮模式) 案例: 本实验采用华为三台F100防火墙,和一台s3 ...