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消息主体

目录
相关文章
|
8天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
8天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
1月前
|
数据采集 存储 XML
深入浅出:基于Python的网络数据爬虫开发指南
【2月更文挑战第23天】 在数字时代,数据已成为新的石油。企业和个人都寻求通过各种手段获取互联网上的宝贵信息。本文将深入探讨网络爬虫的构建与优化,一种自动化工具,用于从网页上抓取并提取大量数据。我们将重点介绍Python语言中的相关库和技术,以及如何高效、合法地收集网络数据。文章不仅为初学者提供入门指导,也为有经验的开发者提供进阶技巧,确保读者能够在遵守网络伦理和法规的前提下,充分利用网络数据资源。
|
2月前
|
网络协议 Python
在Python中进行UDP(User Datagram Protocol)网络编程
在Python中进行UDP(User Datagram Protocol)网络编程
30 3
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
46 0
|
11天前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
15天前
|
数据采集 网络协议 API
python中其他网络相关的模块和库简介
【4月更文挑战第4天】Python网络编程有多个流行模块和库,如requests提供简洁的HTTP客户端API,支持多种HTTP方法和自动处理复杂功能;Scrapy是高效的网络爬虫框架,适用于数据挖掘和自动化测试;aiohttp基于asyncio的异步HTTP库,用于构建高性能Web应用;Twisted是事件驱动的网络引擎,支持多种协议和异步编程;Flask和Django分别是轻量级和全栈Web框架,方便构建不同规模的Web应用。这些工具使网络编程更简单和高效。
|
27天前
|
运维 安全 网络安全
Python灰帽子网络安全实践
旨在降低网络防范黑客的入门门槛,适合所有中小企业和传统企业。罗列常见的攻击手段和防范方法,让网站管理人员都具备基本的保护能力。Python 编程的简单实现,让网络运维变得更简单。各种黑客工具的理论和原理解剖,让人知其然更知道防范于未来。涉及互联网和局域网,让企业级网管工作更轻松。涵盖Linux&Windows 的知识点。
14 1
|
29天前
|
消息中间件 网络协议 API
Python语言的进程通讯及网络
Python语言的进程通讯及网络
|
1月前
|
机器学习/深度学习 算法框架/工具 Python
如何使用Python的Keras库构建神经网络模型?
如何使用Python的Keras库构建神经网络模型?
8 0