当前位置: 首页 > news >正文

合肥公司制作网站的深圳建设工程交易网站

合肥公司制作网站的,深圳建设工程交易网站,五大建设的主要内容,兰州网站设计教程基本介绍 POP3是一种用于从邮件服务器获取电子邮件的协议。它允许邮件客户端连接到邮件服务器#xff0c;检索服务器上存储的邮件#xff0c;并将邮件下载到客户端设备上。POP3的工作原理如下#xff1a; 连接和身份验证#xff1a; 邮件客户端通过TCP/IP连接到邮件服务器…基本介绍 POP3是一种用于从邮件服务器获取电子邮件的协议。它允许邮件客户端连接到邮件服务器检索服务器上存储的邮件并将邮件下载到客户端设备上。POP3的工作原理如下 连接和身份验证 邮件客户端通过TCP/IP连接到邮件服务器的POP3端口通常是110。客户端首先发送USER​命令提供用户名然后发送PASS​命令提供密码以进行身份验证。查看邮件状态 客户端可以使用STAT​命令来查看邮箱中的邮件状态包括邮件数量和总字节数。查看邮件列表 使用LIST​命令客户端可以查看每封邮件的索引号和大小。如果提供邮件索引号服务器将返回特定邮件的大小。检索邮件 使用RETR​命令客户端可以检索特定邮件的内容包括邮件头和正文。邮件被下载到客户端设备上。删除邮件 使用DELE​命令客户端可以标记要删除的邮件。邮件在标记为删除后不会立即从服务器上删除直到客户端执行QUIT​命令。退出 使用QUIT​命令客户端结束POP3会话并断开连接。在断开连接之前标记为删除的邮件将从服务器上删除。 相关概念 邮件收件箱Mailbox 邮件服务器上存储用户接收到的电子邮件的地方。每个用户都有一个邮箱其中包含他们的电子邮件。命令和响应 POP3协议使用一系列命令和响应进行通信。客户端发送命令例如USER​​PASS​​LIST​​等服务器返回响应例如OK​​表示成功-ERR​​表示错误。邮件索引号Message Number 每封邮件在邮箱中都有一个唯一的索引号。客户端可以使用索引号来指定要执行的操作如检索或删除邮件。邮件大小Message Size 邮件的大小以字节为单位。LIST​​命令返回每封邮件的大小以便客户端可以了解邮件的大小信息。标记为删除 客户端可以使用DELE​​命令将邮件标记为删除。标记为删除的邮件在QUIT​​命令之前不会从服务器上真正删除。邮件头和正文 邮件通常由邮件头和正文组成。邮件头包含元数据如发件人、主题和日期。邮件正文包含邮件的实际内容。MIMEMultipurpose Internet Mail Extensions MIME是一种电子邮件标准用于描述邮件内容的类型和格式包括文本、HTML、图像和附件等。连接池Connection Pool 一些POP3客户端使用连接池来管理与邮件服务器的连接以提高性能和效率。 POP3命令与响应 Transaction State 一旦客户机成功地向 POP3服务器标识了自己并且 POP3服务器已经锁定并打开了相应的邮件包, POP3会话现在处于 TRANSACTION 状态. 重复发出以下任何 POP3命令命令POP3服务器发出响应 发出 QUIT 命令POP3会话进入 UPDATE 状态。 STAT命令 ​STAT​查询邮箱中邮件的统计信息包括邮件数量和总字节数。 命令格式 STAT服务器应该响应一个包含两个值的响应邮件数量和邮箱中所有邮件的总字节数。响应的格式如下 OK 邮件数量 总字节数LIST命令 获取邮件服务器返回每封邮件的详细信息包括邮件的索引号和大小。 命令格式 LIST [message_number]message_number​ 是可选的参数用于指定要列出的特定邮件的索引号。如果省略了此参数则会列出所有邮件的信息。 服务器会以以下格式响应LIST​命令 如果未指定message_number​列出所有邮件 OK 邮件总数 messages (邮件总大小 octets) 邮件1的索引号 邮件1的大小 邮件2的索引号 邮件2的大小 ... 邮件n的索引号 邮件n的大小 .​OK​ 表示命令执行成功。​邮件总数​ 是邮箱中邮件的数量。​邮件总大小​ 是所有邮件的总大小以字节为单位。每行中的 邮件i的索引号​ 表示第i封邮件的索引号。每行中的 邮件i的大小​ 表示第i封邮件的大小以字节为单位。 如果指定了message_number​列出特定邮件 OK 邮件索引号 邮件大小​OK​ 表示命令执行成功。​邮件索引号​ 是指定邮件的索引号。​邮件大小​ 是指定邮件的大小以字节为单位。 RETR 检索特定邮件的内容其中邮件的索引号由客户端指定。RETR命令可用于下载邮件的正文和标头。 命令格式 RETR message_number服务器会以以下格式响应RETR​命令 如果命令执行成功 OK 邮件内容 .​OK​ 表示命令执行成功。​邮件内容​ 包含了邮件的完整内容包括邮件头和正文。通常邮件内容以文本格式返回。最后一行的.​句号表示邮件内容的结束。 如果命令执行失败邮件不存在或索引号无效 -ERR 错误消息​-ERR​ 表示命令执行失败。​错误消息​ 包含有关失败原因的描述。 DELE 标记特定邮件以删除它们但不会立即从服务器上删除它们。删除操作只有在客户端执行QUIT​命令时才会生效。 命令格式 DELE message_number**服务器响应: ** 如果命令执行成功邮件被成功标记为删除 OK Message message_number deleted​OK​ 表示命令执行成功。​message_number​ 是已标记为删除的邮件的索引号。 如果命令执行失败邮件不存在或索引号无效 -ERR 错误消息​-ERR​ 表示命令执行失败。 ​错误消息​ 包含有关失败原因的描述。 NOOP 它不执行任何实际的操作。它的主要目的是告诉邮件服务器客户端仍然活跃正在使用连接以防止连接因长时间不活动而被服务器关闭。 REST 重置或取消标记为删除的邮件以便这些邮件不会被删除。 RSET命令通常用于撤销之前使用DELE命令标记为删除的邮件。 命令格式 RSET命令响应 如果命令执行成功 OK​OK​ 表示命令执行成功。 如果命令执行失败通常是因为RSET​命令不支持或出现其他问题 -ERR 错误消息​-ERR​ 表示命令执行失败。​错误消息​ 包含有关失败原因的描述。 UPDATE State QUIT 告知邮件服务器客户端已经完成了邮件收取或管理任务并请求结束与服务器的连接。 Optional命令 TOP 检索邮件的头部信息和指定行数的邮件正文。 ​TOP​命令允许客户端请求邮件服务器返回特定邮件的头部信息和部分邮件正文以减少数据传输量和加快邮件检索速度。 命令格式 TOP message_number number_of_lines​message_number​ 是要检索的邮件的索引号。客户端必须提供一个有效的索引号以指示要检索的邮件。​number_of_lines​ 是要返回的邮件正文的行数。客户端可以指定要检索多少行邮件正文通常用于查看邮件的摘要信息。 响应: OK 邮件头部信息 邮件正文的前n行 .​OK​ 表示命令执行成功。​邮件头部信息​ 包含了邮件的头部信息如发件人、主题、日期等。​邮件正文的前n行​ 包含了指定行数的邮件正文。最后一行的.​句号表示邮件内容的结束。 UIDL 检索每封邮件的唯一标识符UID。每封邮件都分配了一个唯一的UID通常用于客户端在与服务器交互时标识邮件而不仅仅依赖于邮件的序号。 命令格式 UIDL [message_number]响应 OK message_number UID ​OK​ 表示命令执行成功。​message_number​ 是邮件的索引号。​UID​ 是邮件的唯一标识符UID。 USER ​USER​命令是POP3Post Office Protocol Version 3协议中的一条命令用于向邮件服务器提供登录用户名。USER​命令通常是POP3会话的第一步用于标识客户端要使用的邮箱账户。 PASS ​PASS​命令是POP3Post Office Protocol Version 3协议中的一条命令用于向邮件服务器提供登录密码以完成身份验证。一般情况下在使用USER​命令提供用户名后客户端必须使用PASS​命令提供相应的密码以便访问邮箱账户。 APOP ​APOP​Authenticated Post Office Protocol是POP3Post Office Protocol Version 3协议的一种认证机制。它是一种用于安全地认证邮件客户端与邮件服务器之间的身份的方法。与普通的POP3用户名和密码认证不同APOP​使用一种基于哈希函数的挑战-响应机制来认证客户端的身份。 以下是APOP​认证的工作原理 邮件服务器生成一个随机的挑战字符串通常是一个长字符串称为挑战值challenge。邮件服务器将挑战值与密码的哈希值进行拼接并计算拼接后的字符串的MD5哈希值。这个MD5哈希值称为响应值response。邮件服务器将挑战值发送给客户端。客户端收到挑战值后将自己的密码和挑战值拼接并计算拼接后的字符串的MD5哈希值得到自己的响应值。客户端将自己的用户名和响应值发送给邮件服务器。邮件服务器收到客户端的响应后会检查客户端的用户名是否存在并将客户端的响应值与邮件服务器计算的响应值进行比较。如果客户端的响应值与邮件服务器的响应值匹配服务器将认为客户端通过了认证允许客户端访问邮箱。 ​APOP​认证的优点是它通过使用挑战-响应机制使得在网络上传输的密码不会以明文形式传输从而提高了安全性。这种认证机制确保只有知道正确密码的客户端才能通过认证。 请注意APOP​认证是一种POP3协议的扩展认证机制因此并不是所有邮件服务器和邮件客户端都支持它。在使用APOP​认证之前确保您的邮件服务器和客户端都支持此认证方式。 Go语言解析POP3 解析头部 通过mail.ReadMessage来解析邮件内容 message, err : mail.ReadMessage(strings.NewReader(source)) if err ! nil {log.Error(err)return }通过解析出来message内部的Header结构可以获取指定key的信息 常见key有: From​、To​、Subject​、Date​、Content-Type​、Content-Transfer-Encoding​ from : message.Header.Get(From) to : message.Header.Get(To) subject : message.Header.Get(Subject) date : message.Header.Get(Date) message.Header.Get(Content-Type) message.Header.Get(Content-Transfer-Encoding)Header实际是个map, 所以可以通过for循环的方式遍历 for k, v : range message.Header {blog.Info(key: , k, value:, v) }解析body 通常body会带有多行, 并且最后带有.结束符, 所以我们需要将这些过滤掉 str : strings.ReplaceAll(string(body), \r\n, )str strings.ReplaceAll(str, ., )具体需要使用解析算法需要注根据Content-Transfer-Encoding来判断,比较常用的两种邮件编码方式为BASE64和Quoted-printable。后来的扩展 SMTP协议允许直接在邮件中传递二进制数据而不用对它们进行邮件编码人们将这种没有进行邮件编码的二进制数据的邮件内容称为8bit编码为了与此 相区别人们将没有进行邮件编码的纯ASCII码字符的邮件称为7bit编码。MIME消息体的邮件编码方式通过MIME消息头中的Content- Transfer- Encoding头字段指定每种邮件编码方式的介绍如下 7Bit: 指消息体内容全部是没有经过编码的ASCII字符。8Bit: 指消息体内容是没有经过编码的原始数据且其中包含有非ASCII字符的数据。现在的邮件服务器基本上都支持8Bit编码使用支持8Bit编码的邮件服务器可以简化邮件的处理过程。BASE64: Base64是将二进制数据转换成可打印的ASCII字符的一种最常见的编码方式它的基本原理是将一组连续的字节数据按6个bit位进行分组然后对每组数据用一个ASCII字符来表示。Quoted-printable: 一种将二进制数据转换成可打印的ASCII字符的编码方式它对ASCII字符不进行转换只对非ASCII字符的数据进行编码转 化。 指消息体内容全部是没有经过编码的ASCII字符。 使用base64解析示例: decodedBody, err : base64.StdEncoding.DecodeString(str)if err ! nil {log.Fatal(Error decoding Base64:, err)}log.Info(string(decodedBody)) 参考资料 inbucket smtp,pop3,restful服务 pop3协议分析 docker使用Inbucket搭建邮件服务器用于接受邮件 rfc1939 Multipurpose Internet Mail Extensions(RFC2045) ‍
http://www.dnsts.com.cn/news/216892.html

相关文章:

  • 厦门网站建设是什么意思网络规划设计师月薪多少
  • 下载中心官方网站建设银行临沂做网站
  • 优购网徐州网站优化推广
  • 做内部优惠券网站西安网站开发工程师招聘
  • 记事本做网站怎么不行啦室内设计效果图招聘
  • 苏州哪里做网站制作自己的网站需要什么
  • 高端上海网站设计公司价格品牌营销案例
  • 模板网站建设乐云seo效果好网站设计与制作培训学校
  • 局域网网站开发软件wordpress建站两秒打开
  • 创建网站要多长时间丽水市住房和城乡建设局网站
  • 做视觉影像网站用什么软件系统微信公众号模板
  • 网站怎么样排名个人秀网站
  • 英德建设局网站河南网站建设优化推广
  • 深圳网站建设营销策划网站开发制作平台
  • 博客优化网站seo怎么写图标网站导航制作怎么做
  • 网站建设优化方法江门市住房和城乡建设部网站
  • 电子商务之网站建设页面优化
  • 手机开发者网站国内做网站的公司
  • 游戏网站建设免费做催收的网站
  • 信用 网站 建设方案河北廊坊建设局网站
  • 自己做网站想更换网址网站建设费用 多少钱
  • 网页设计的交流网站左旗网站建设公司
  • 如何用vps做网站一键建站模板
  • 给公司建立一个网站吗page和wordpress
  • 上海做网站及推广哪些做调查问卷挣钱的网站
  • 电商网站开发的项目描述公司网页制作设计
  • 崇礼做网站的公司衡水做网站找谁
  • seo整站优化网站建设网站建设广告管理
  • 在线视频网站开发先进的网站开发技术
  • 宝安专业网站设计公司主机屋网站