python 网络编程

简介: coder消息摘要标题  阅读者理解消息的抄送着即使邮件不是直接写给他们的MIME 多用途因特网邮件扩展Multipurpose internet mail extension;multipurpose internet mail extension如果RFC 2822要求消息仅包含U.

coder消息摘要标题  阅读者理解
消息的抄送着即使邮件不是直接写给他们的
MIME 多用途因特网邮件扩展
Multipurpose internet mail extension;
multipurpose internet mail extension

如果RFC 2822要求消息仅包含U.S.ASCII字符
如何使人们发送带有图片和其他二进制文件附件的邮件 发送带有图片和其他二进制文件的附件
利用RFC 2822扩展MIME(Multi-purpose internet mail extension)
发送图片及其他二进制附件邮件MIME;
向电子邮件消息添加二进制附件  用非英语字符写消息甚至消息头  使消息内容在另一端正确显示
假设另一端理解MIME  邮件终端能理解MIME

主要的MIME标准是RFC 1521 描述了如何将二进制数据写入E-mail

MIME编码quoted-printable coders
base64 编码
quoted-printable quopri

base64
base64编码则用于二进制数据 它不应当用于人类可读的文本 完全掩盖了文本
既然quoted-printable可以处理所有数据,并且不破坏人类可读文本 有些数据并不是printable 而硬将它们编码为quoted-printable格式引起误导  Base64编码比quoted-printable编码表示二进制数据更有效率
使用以长串随机的二进制字符对两种编码方式进行比较

Python 字符串数据编码解码模块
quoted-printable quopri
base64
用base64对大多数二进制数据进行编码节省空间带宽
用base64 编码ascii字符串过犹不及
MIME支持两种不同类型编码方式
一种可读的编码quoted-printable哪一种密集型编码
可读编码quoted-printable 密集型编码


MIME multipurpose internet mail extension;
MIME 比它名称揭示的 emailapp 也使用mime许多特征
使用base64 或是 quoted-printable编码将非ascii字符转换成Ascii字符的思想
base64编码有时也用在不对文本做加密的前提下使文本隐晦不易读

关于内容类型的思想
Here's that picture I took of you 通过使用Base64编码 接收者将得到发送时进行编码数据
内容类型
邮件阅读器如何才能知道图片   而不是其他形式二进制数据
MIME通过定义一个定制的RFC 2822 格式的邮件头解决这个问题
头名 Content-Type;
描述了邮件主体文件类型
邮件主体问类型
邮件主体邮件类型;
头名Content-Type 描述了邮件主体文件类型  接收者邮件客户端可以知道如何显示
描述邮件主体文件类型

内容类型包括text/plain 如何将一封普通的E-mail消息封装在MIME
text/html image/jpeg video/mpeg audio/mp3
每种内容类型都有一个主类型 子类型  斜杠分割
每个类型都有一个主类型和子类型
主类型和子类型用斜杠分割
子类型通常指定特定类型文本格式
内容类型的字符串能够告诉接收者如何处理
MIME用在E-mail世界之外
http响应都有一个Content-type头
就像MIME E-mail消息
告诉web浏览器如何显示响应

创建带附件的MIME消息
制作一个包含已编码图片文件MIME消息

MIME多部分消息
消息主体没有用于容纳文本的部分
在文件主体内放置文本将破坏图片文件
 主体内放置文本 破坏图片文件
邮件消息的Content-Type头可以是text/plain 或者image/jpeg
除了分类其他标准定义的文件格式
除了分类其他标准定义的文件格式   针对图片格式image
multipart特殊主类型
主内容类型multipart的消息可以在它的主体包含其他MIME 消息

每个MIME消息有自己的邮件头内容类型
观察multipart内容类型的工作原理最好的方法是使用e-maill.mime,multipart创建多部分消息 使用email.mime*创建作为附件的文件

仅有内容类型(multipart/mixed)不足以使邮件主体有意义 MIME需要对边界 进行定义 边界是Python半随机地生成字符串
半随机生成的字符串 在邮件中 标记一部分结束 一部分开始的地方
消息作为整体拥有关联的E-mail消息的所有头Subject From,To MIME特定的Content-header
既在消息头部也在消息体出现

事先不能确定使用哪个类表示邮件消息
称作StartMessage类 创建E-mail消息
将主体文本保存在简单的Message表示中
添加附件 使用MimeMultipart
策略产生与典型终端用户邮件程序相同的E-mail消息主体

目录
相关文章
|
13天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
13天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
5天前
|
机器学习/深度学习 Python
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
16 0
|
5天前
|
JSON 网络协议 API
Python网络编程面试题精讲
【4月更文挑战第15天】本文介绍了Python网络编程的面试重点,包括基础Socket编程、HTTP协议与requests库、异步编程与asyncio库。通过实例解析常见面试题,强调了非阻塞套接字、异常处理、HTTP状态码检查以及异步任务管理等关键点。提供代码示例帮助读者巩固概念,助力面试准备。
11 0
|
7天前
|
机器学习/深度学习 存储 测试技术
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
19 0
|
8天前
|
机器学习/深度学习 资源调度 数据可视化
使用Python和Keras进行主成分分析、神经网络构建图像重建
使用Python和Keras进行主成分分析、神经网络构建图像重建
10 1
|
11天前
|
网络协议 Java API
Python网络编程基础(Socket编程)Twisted框架简介
【4月更文挑战第12天】在网络编程的实践中,除了使用基本的Socket API之外,还有许多高级的网络编程库可以帮助我们更高效地构建复杂和健壮的网络应用。这些库通常提供了异步IO、事件驱动、协议实现等高级功能,使得开发者能够专注于业务逻辑的实现,而不用过多关注底层的网络细节。
|
16天前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
20天前
|
数据采集 网络协议 API
python中其他网络相关的模块和库简介
【4月更文挑战第4天】Python网络编程有多个流行模块和库,如requests提供简洁的HTTP客户端API,支持多种HTTP方法和自动处理复杂功能;Scrapy是高效的网络爬虫框架,适用于数据挖掘和自动化测试;aiohttp基于asyncio的异步HTTP库,用于构建高性能Web应用;Twisted是事件驱动的网络引擎,支持多种协议和异步编程;Flask和Django分别是轻量级和全栈Web框架,方便构建不同规模的Web应用。这些工具使网络编程更简单和高效。
|
1月前
|
运维 安全 网络安全
Python灰帽子网络安全实践
旨在降低网络防范黑客的入门门槛,适合所有中小企业和传统企业。罗列常见的攻击手段和防范方法,让网站管理人员都具备基本的保护能力。Python 编程的简单实现,让网络运维变得更简单。各种黑客工具的理论和原理解剖,让人知其然更知道防范于未来。涉及互联网和局域网,让企业级网管工作更轻松。涵盖Linux&Windows 的知识点。
14 1