第 14 章 PyMailGUI 客户端PyMailGUI 客户端
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
"使用信号源,卢克"
上一章介绍了 Python 的客户端互联网协议工具集--可在 Python 脚本中用于电子邮件、FTP、网络新闻、HTTP 等的标准库模块。本章接着上一章的内容,介绍一个完整的客户端示例--PyMailGUI,这是一个发送、接收、合成和解析互联网电子邮件的 Python 程序。
虽然本章的最终成果是一个可以实际用于电子邮件的工作程序,但在我们开始之前,本章还有一些其他议程值得注意:
- 客户端脚本
PyMailGUI实现了一个全功能的桌面图形用户界面,它运行在你的机器上,并在必要时与你的邮件服务器进行通信。因此,它是一个网络客户端程序,可以进一步说明前一章的一些主题,并帮助我们对比下一章介绍的服务器端解决方案。
- 代码重复使用
此外,PyMailGUI 将我们迄今为止在书中编写的许多实用模块联系在了一起,并在这一过程中展示了代码重用的力量--它使用了一个线程模块来允许邮件传输在时间上重叠,使用了一组邮件模块来处理邮件内容并在 Network+ 上路由,使用了一个窗口协议模块来处理图标,还使用了一个文本编辑器组件,等等。此外,它还继承了 Python 标准库中工具的强大功能,如
email软件包;例如,在这里构建和解析邮件几乎是微不足道的。- 大型编程
最后,本章将以实例说明现实中的大规模软件开发。由于 PyMailGUI 是一个相对庞大和完整的程序,它通过实例展示了一些代码结构技术,这些技术在我们离开小规模和人为的领域后被证明是有用的。例如,面向对象编程和模块化设计可以很好地将系统划分为较小的、独立的单元。
不过,PyMailGUI 最终还是说明了图形用户界面、Network+ 和 Python 的结合能让我们走多远。像所有的 Python 程序一样,这个系统是可编写脚本的--一旦你学会了它的总体结构,你就可以通过修改源代码轻松地将它改成你喜欢的样子。和所有 Python 程序一样,这个系统也是可移植的--您可以在任何装有 Python 和网络连接的系统上运行它,而无需修改代码。如果您的软件是用 Python 这样开源、可移植和可读的语言编写的,那么这些优势就会自动显现出来。
源代码模块和大小
本章是自学练习。因为 PyMailGUI 相当庞大,而且主要应用了我们已经学过的概念,所以我们不会详细介绍它的实际代码。相反,我们会将其列出供您自行阅读。我鼓励您研究源代码和注释,并实时运行该程序以了解其运行情况;我们还提供了保存邮件的示例文件,您甚至可以离线进行实验。
在学习和运行本程序的过程中,你还需要参考我们在书中前面介绍过的模块,并在此重复使用,以全面了解系统。以下是本章中将出现新操作的主要示例,以供参考:
其中一些模块反过来又使用了我们之前编码的附加示例,但 PyMailGUI 本身并不导入这些示例(例如, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access