13.4.2 连接服务器
要建立与一个IMAP服务器的连接,有2个步骤。首先,建立套接字连接本身。其次,用服务器上的一个账户认证为用户。下面的示例代码会从一个配置文件读取服务器和用户信息。

import imaplib
import configparser
import osdef open_connection(verbose=False):# Read the config file.config = configparser.ConfigParser()config.read([os.path.expanduser('~/.pymotw')])# Connect to the server.hostname = config.get('server','hostname')if verbose:print('Connecting to',hostname)connection = imaplib.IMAP4_SSL(hostname)# Log in to our account.username = config.get('account','username')password = config.get('account','password')if verbose:print('Logging in as',username)connection.login(username,password)return connectionif __name__ == '__main__':with open_connection(verbose=True) as c:print(c)

运行时,open_connection()从用户主目录中的一个文件读取配置信息,然后打开IMAP4_SSL连接并认证客户。

这一节的其他例子还会重用这个模块,以避免重复代码。

13.4.2.1 认证失败
如果建立了连接,但是认证失败,那么便会产生一个异常。

import imaplib
import configparser
import os# Read the config file.
config = configparser.ConfigParser()
config.read([os.path.expanduser('~/.pymotw')])# Connect to the server.
hostname = config.get('server','hostname')
print('Connecting to',hostname)
connection = imaplib.IMAP4_SSL(hostname)# Log in to our account.
username = config.get('account','username')
password = 'this_is_the_wrong_password'
print('Logging in as',username)
try:connecton.login(username,password)
except Exception as err:print('ERROR:',err)

这个例子故意用错误的密码来触发这个异常。

第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-连接服务器(认证失败)相关推荐

  1. 第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-邮箱状态

    13.4.5 邮箱状态 可以使用status()询问内容的有关合计信息.表13-1列出了标准中定义的状态条件. 状态条件必须被格式化为用空格分隔的字符串,并被包围在括号中--换句话说,使用IMAP4规 ...

  2. 第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-变种

    13.4 imaplib:IMAP4客户库 imaplib实现了一个可以与IMAP4服务器通信的客户,IMAP表示internet消息访问协议(Internet Message Access Prot ...

  3. 第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-获取消息

    13.4.9 获取消息 使用fetch()方法,可以利用search()返回的标识符获取消息的内容(或部分内容),以便做进一步处理.这个方法有两个参数:要获取的消息ID和所获取消息的(多个)部分.me ...

  4. IT项目管理总结:第十二章 项目采购管理

    第十二章 项目采购管理 项目采购管理的重要性 –外包的好处: A)获得技能和技术 B)降低固定和周期性成本 C)使客户组织集中在自己的核心业务上 D)提供灵活性 E)提高可追责性 –项目采购管理(Pr ...

  5. 信息系统项目管理师---第十二章 项目采购管理

    信息系统项目管理师-第十二章项目采购管理 采购管理过程说明: •规划采购管理:决定采购什么,何时采购.还包括制定采购 SOW,评价标准等 •实施采购.从潜在的供应商处获取适当的信息.报价.投标书或建议 ...

  6. PMP 考点 第十二章 项目采购管理

    PMP 第十二章 项目采购管理 章节 序号 知识点 考点级别 备注 第十二章 项目采购管理 12.1 采购活动的职责和典型步骤.供方选择分析.采购管理计划.采购策略 3 12.2 合同类型.采购文件. ...

  7. Linux(b站视频兄弟连)自学笔记第十二章——Linux服务管理

    Linux(b站视频兄弟连)自学笔记第十二章--Linux服务管理 服务分类 RPM包安装服务的管理 独立服务的管理 基于xinetd 的服务管理 源码包服务管理 服务分类 RPM包安装服务的管理 独 ...

  8. 《DAMA数据管理知识体系指南》读书笔记-第十二章(元数据管理)

    目录 一.前言 二.内容结构 三.主要内容 1.引言 2.活动 3.工具 4.方法 5.实施指南 6.元数据治理 四.思考与总结 一.前言 本文是<DAMA数据管理知识体系指南>第12章的 ...

  9. 项目管理笔记-第十二章 项目采购管理

    1.项目采购管理包括从项目团队外部采购或获取所需产品.服务或成果的各个过程,包括编制和管理协议所需的管理和控制过程,例如:合同.订购单.协议备忘录(MOA).服务水平协议(SLA).被授权采购的可以是 ...

最新文章

  1. 用按位异或运算符交换两个数,不引入第三个变量
  2. centos7.1 RabbitMQ安装配置
  3. 浅析php中的stdClass
  4. Guice使用入门以及整合Redis
  5. 智能公交市场的竞争与合作
  6. 杀毒软件可以查杀所有计算机病毒吗,好的杀毒软件可以查杀任何病毒,对还是错?...
  7. ChaiNext:过去24小时大盘震荡调整
  8. c++输出的值精确到小数点后5位_直击灵魂——圆周率小数点后3位到12411亿位到底有啥用?...
  9. java 同余法产生随机数_线性同余法生成为随机数
  10. 傅里叶热传导定律【Fourier's Law of Heat Conduction】
  11. vue 实现图片预览
  12. Redis -- 数据库常用命令大全
  13. 刘海洋《LaTex入门》学习笔记3
  14. ReadyBoost 的应用教程
  15. 软件测试车载系统,车载软件测试
  16. 4872: [Shoi2017]分手是祝愿
  17. js生成相近色颜色RGB代码
  18. html实现鼠标悬停效果实现
  19. 辅修计算机编程,求帮忙~计算机C语言的编程题!大学选的辅修课没去过,要考试了不会? 爱问知识人...
  20. Python matplotlib绘图如何显示中文的问题【有报错没有解决】

热门文章

  1. [转一好玩的博文]毕业三年,遇见的傻逼公司大盘点
  2. 数据库sql课后总结
  3. 基于树莓派的微型气象台
  4. 官方对于,Mozilla公司开发的FireFox浏览器,评价有多好!
  5. 怎么释放gpu内存占用
  6. 2021年教你增加拿到BAT等大厂offer几率,分享PDF高清版
  7. 紫薇星上的数据结构(1)
  8. 【Vegas转】自信从自我欣赏开始
  9. unity应用实例——从头撸一个全新的FPS游戏(1)
  10. 微软ipv6服务器,IPv6用户危险了!Win10出现严重安全漏洞