以前使用电脑端访问邮箱时,知道有POP3、SMTP协议,随首技术的发展,最近又有了很多种选择,尤其是手机端,看到了每多种连接方式,比如IMAP、EXCHANGE方式,邮件还带同步的,比如电脑端改变了邮件,手机端也同步了,因此想写几篇文章学习一下这些协议和新的技术,此次看的是POP3协议。

POP3是Post Office Protocol – Version 3的简写,中文意思是简单邮局协议(版本3),它是由RFC1939文件描述的。POP3协议的作用是动态地从服务器上下载邮件,然后删除服务器上的邮件(新版的POP3可以不删除),除此之外,POP3协议并没有提供更多的对于邮件的操作。相应的,有一种更高级的IMAP4协议,能够支持对邮件更多的操作。

下面是POP3协议所支持的命令:

命令

描述

USER [username]

处理用户名

PASS [password]

处理用户密码

APOP [Name,Digest]

认可Digest是MD5消息摘要

STAT

服务器发回关于邮箱的统计资料,如邮件总数和总字节数

UIDL [Msg#]

处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的

LIST [Msg#]

处理返回邮件数量和每个邮件的大小

RETR [Msg#]

处理返回由参数标识的邮件的全部文本

DELE [Msg#]

处理服务器将由参数标识的邮件标记为删除,由quit命令执行

RSET

处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令

TOP [Msg# n]

处理服务器将返回由参数标识的邮件前n行内容,n必须是正整数

NOOP

服务器返回一个肯定的响应

QUIT

终止会话

PYTHON支持POP3协议,并提供了很多函数来使用,比如poplib类库,下面就以这个类库为例子来使用POP3协议:

import poplib

#填写服务器地址,用户名和密码

server=”pop.qq.com”

account=”362603639″

password=”*********”

#注意QQ邮箱服务器使用SSL连接,提高安全性,使用的是POP3_SSL方法,端口是995

server=poplib.POP3_SSL(server, port = 995)

print(server.getwelcome())

# +OK QQMail POP3 Server v1.0 Service Ready(QQMail v2.0)

#使用账号和密码登陆

server.user(account)

server.pass_(password)

#’+OK’

#打印登陆后的状态

print(‘Messages: %s. Size: %s’ % server.stat())

#Messages: 32. Size: 1201061

#获取第一封邮件,三个返回结果分别是:返回状态、邮件内容、邮件长度 :

resp, lines, octets = server.retr(1)

#将邮件的每一行拼接起来

msg_content = ‘\r\n’.join(lines)

# 关闭连接:

server.quit()

python pop3_PYTHON学习:使用POP3协议下载邮件相关推荐

  1. 【Python3】POP3协议收邮件

    初学Python3,做一个email的例子,虽然知道做的很渣渣,还是分享一下吧 POP3协议 POP3全称Post Official Protocol3,即邮局协议的第三个版本,它规定了怎样将个人计算 ...

  2. 通过 POP3 协议下载电子邮件

    通过POP3协议下载任何一个电子邮件服务提供商账户中的电子邮件. 我们要尝试下载用户电子邮件账户中的第一封邮件.用户名在命令行中输入,密码不能在命令行中指定,而是在运行脚本时输入,而且不能显示出来. ...

  3. python+POP3 批量下载邮件附件

    最近新开学,接到了给老板的本科课程当助教的工作,百十来号人一学期下来得有四五次作业发进邮箱里,需要我来统计打分,想想挨个点进去下载附件的过程就头大,于是萌生了写个脚本来统计作业的想法. 其实pytho ...

  4. Python爬虫学习(十一)下载验证码图片

    本文是继前面爬取登录教务系统时,遇到验证码登录的遗留问题探讨! 思路: 下载登录教务系统时的图片,打开读取,人工识别,手动写入再结合账户登录. 目录 一.获取验证码图片 二.带验证码图片的reques ...

  5. 【Python学习笔记】(十)邮件处理:email模块;SMTP协议(smtplib模块);POP3协议(poplib模块);IMAP协议(imaplib模块)

    电子邮件,简称电邮,是指一种由寄件人将数字信息发送给一个人或者多个人的信息交换方式. 电邮包括三个部分:消息的"信封".邮件标头.邮件内容. 电邮的格式:用户名@主机名(域名).电 ...

  6. java smtp pop3_手工体验smtp和pop3协议 邮件实现详解(二)

    上篇博客我们简单介绍了电子邮件的发送和接收过程,对参与其中的邮件服务器,邮件客户端软件,邮件传输协议也有简单的介绍.我们知道电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递必须 ...

  7. python模拟登录163邮箱_python模拟登陆163邮箱并下载邮件内容(第三版代码片段)

    python模拟登陆163邮箱并下载邮件内容(第三版代码片段) 注意: 1 由于163邮箱有众多版本,所以登录请求URL,邮件URL等可能也不太一样,下面是163的简约3.0 2 代码缺乏错误处理能力 ...

  8. SMTP协议及POP3协议-邮件发送和接收原理(转)

    本文转自https://blog.csdn.net/qq_15646957/article/details/52544099 感谢作者 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 ...

  9. 通过JavaMail下载邮件附件

    通过JavaMail下载邮件附件 需求 JavaMail 工具类 附件类 使用 遇到的一些意外 需求 因为某些特定的业务需要,要从邮件中获取附件.花了一些时间,最终业务需求实现了,但是也遇到一些坑,所 ...

最新文章

  1. vs code php html,vscode如何调试html
  2. spring与memcache的集成
  3. Liunx中进程和计划任务管理
  4. 原来程序员在某个圈子还是蛮吃香的嘛~
  5. opencv中的approxPolyDP函数和boundingRect函数
  6. HDU 5226 Tom and matrix(组合数学+Lucas定理)
  7. 如何通过IP定位交换机
  8. gtk移植到嵌入式_物联网时代的盛行,应届毕业生是学嵌入式好呢,还是安卓或ios呢?...
  9. copy 扩展名 包含子文件夹 文件 到某个 文件夹
  10. solaris oracle 磁盘阵列,RAID-1 和 RAID-0 卷要求和原则
  11. 12.15daily_scrum
  12. 程序员面试金典——5.5整数转化
  13. Jmeter (三十)jmeter+ant+jenkins持续集成
  14. 拷贝一个用户下的所有表和数据到另外一个库
  15. 五大常用算法(一) - 分治算法
  16. win7 旗舰版激活工具(附件下载)
  17. 从接口、抽象类到工厂模式再到JVM来总结一些问题
  18. Android版优酷网闪亮登场
  19. 布道微服务_03服务的发布和引用
  20. Java实现发邮件功能

热门文章

  1. 0 17在c语言中什么意思,exit(0)在c语言中是什么意思
  2. PS笔刷优质系列,300款精选笔刷合集
  3. python蟒蛇编程_蟒蛇(Python)——欧美最容易学习的编程语言
  4. 2021年煤气考试报名及煤气考试APP
  5. 影子模式,是不是被“神化”了?
  6. java 规则引擎 教程_【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-groupsalience...
  7. 我是实干型的,你是做梦型的
  8. Java 字符串拆分
  9. 7-7 提取不重复的英文字母
  10. 【TOMVIP邮箱618抢购活动】,注册即送靓号,更多惊喜福利!