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()















本文转自RickyHuL51CTO博客,原文链接:http://blog.51cto.com/rickyh/1953142 ,如需转载请自行联系原作者


相关文章
|
17天前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
33 4
|
15天前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
101 63
|
16天前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
16天前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
22天前
|
JSON Linux 数据格式
Python模块:从入门到精通,只需一篇文章!
Python中的模块是将相关代码组织在一起的单元,便于重用和维护。模块可以是Python文件或C/C++扩展,Python标准库中包含大量模块,如os、sys、time等,用于执行各种任务。定义模块只需创建.py文件并编写代码,导入模块使用import语句。此外,Python还支持自定义模块和包,以及虚拟环境来管理项目依赖。
Python模块:从入门到精通,只需一篇文章!
|
9天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
20 4
|
17天前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
29 5
|
16天前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
21天前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
55 9
|
21天前
|
JavaScript 前端开发 Python
python中的OS模块的基本使用
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。博客分享前端技术及全栈开发经验,持续更新中,期待您的关注和支持!🎉🎉🎉
28 0