python中使用poplib模块接收邮件

目的:用poplib模块接收邮件,并处理文本内容。

环境:windows 7 Python 3.5.3

情景:服务器一般预警都会有邮件通知,如果通知比较多且邮箱还会收到其他的邮件时,这时从中整理出预警信息并统计的话,这个也算是一个比较重复繁琐的事,可以用脚本自动收集信息,并整理相关信息到表格内,方便查看。

使用邮件模块接收邮件需要导入poplib,这个模块是内置的。

import poplib

# 服务器及用户信息

email = ‘邮箱地址‘

username = ‘登录用户名‘

password = ‘登录密码‘

pop3_server = ‘pop接收服务器地址‘

# 根据是否加密连接到服务器

server = poplib.POP3_SSL(pop3_server) 或server = poplib.POP3(pop3_server)

# 打印调试信息

# #### debug sentence #####

server.set_debuglevel(1)

# 打印欢迎信息

# ##### debug sentence #####

print(server.getwelcome())

# 身份认证

server.user(username)

server.pass_(password)

# 返回一个元组格式,邮件总数量和总大小

mail_total, total_size = server.stat()

print(‘Messages: %s. Size: %s‘ % (mail_total, total_size))

# 最旧的邮件标号是0,邮件数量也是最新的那封邮件的标号 返回的邮件是字节,需要编译成字符串,中文版的windows服务器一般是gb2312编码。

# 编译字符串def decode_str(_str):

try:

change_str = _str.decode(‘gb2312‘)

except UnicodeDecodeError:

change_str = _str.decode(‘utf-8‘)

# 获取邮件对应内容i 表示邮件标号,获取的邮件是一个元组,内容分别是(状态(+OK),邮件内容(列表),邮件大小(字节数))。

mail = server.retr(i)[1]邮件内有一行内容是邮件的ID,是唯一的,可以用来识别邮件。

# 退出服务

server.quit()

时间: 2024-12-14 18:18:11

python中使用poplib模块接收邮件的相关文章

Python中的random模块,来自于Capricorn的实验室

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

python中查看可用模块

1.这种方式的问题是,只列出当前import进上下文的模块. 进入python命令行.输入以下代码: >>>import sys >>>sys.modules 2.在python命令行下输入: >>>help() help>modulespython中查看可用模块,布布扣,bubuko.com

python中动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

Python中的random模块

Python中的random模块 (转载自http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html) Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),

解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下代码 import sys reload(sys) sys.setdefaultencoding('utf-8') 2.确认你ubuntu系统环境下拥有的中文字体文件: 在终端运行命令"fc-list :lang=zh",得到自己系统的中文字体 命令输出如下: /usr/share/fon

(转)Python中的random模块

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

转载:python中的copy模块(浅复制和深复制)

主要是介绍python中的copy模块. copy模块包括创建复合对象(包括列表.元组.字典和用户定义对象的实例)的深浅复制的函数. ########copy(x)########创建新的复合对象并通过引用复制x的成员来创建x的浅复制.更加深层次说,它复制了对象,但对于对象中的元素,依然使用引用.对于内置类型,此函数并不经常使用.而是使用诸如list(x), dict(x), set(x)等调用方式来创建x的浅复制,要知道像这样直接使用类型名显然比使用copy()快很多.但是它们达到的效果是一样

Python中的logging模块【转】

基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -*- 2 3 import logging 4 import sys 5 6 # 获取logger实例,如果参数为空则返回root logger 7 logger = logging.getLogger("AppName") 8 9 # 指定logger输出格式 10 formatter = logging.Formatter('%(asctime)s %(levelname)-8s:

Python中的logging模块

http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34