建立一个电子邮件客户端有多难?- Python

本文介绍了建立一个电子邮件客户端有多难?- Python的处理方法,对大家解决问题具有一定的参考价值

问题描述

我正在这里冒险未知的领域......

我正在尝试计算使用 Python 实现电子邮件客户端的难度:

  • 邮件检索
  • 电子邮件发送
  • 电子邮件格式
  • 电子邮件呈现

我还想知道是否所有协议都易于/难以支持,例如SMTP、IMAP、POP3、...

<小时>

希望有人能指出我正确的方向:)

解决方案

Python 语言确实在其标准库中提供了对所需协议的原始支持.正确使用 then,并正确解析和组装现代"电子邮件,但是可能很难做到.

另外,你没有说你是否想为你的电子邮件客户端创建一个图形界面——如果你想有一个合适的图形界面——直到可用的程度,它是相当多的工作.

本地电子邮件存储将是更容易的部分 - 除非您想正确实现 mbox 文件格式 RFC-4155 以便其他软件可以轻松读取/写入您获取的消息,您可以使用 ORM 或面向对象的数据库(如 ZODB 或 MongoDB)将它们存储为 Python 对象.p>

如果您想要的不仅仅是一个玩具电子邮件应用程序,您将有很多工作 - 正确编码电子邮件标头,例如,服务器身份验证和安全身份验证和传输层,电子邮件文本正文的解码本身用于非 ASCII 消息.尽管 Python 标准库中的模块确实实现了很多,但它们的文档缺少示例 - 并且一个完整的电子邮件客户端必须使用所有这些.

当然,启动电子邮件客户端(即使是玩具客户端)的地方是查看最新的电子邮件 RFC(然后您必须从这里选择 http://www.ietf.org/rfc/rfc-index 因为只是在寻找email rfc"google 给出的结果很差).

I'm venturing in unknown territory here...

I am trying to work out how hard it could be to implement an Email client using Python:

  • Email retrieval
  • Email sending
  • Email formatting
  • Email rendering

Also I'm wondering if all protocols are easy/hard to support e.g. SMTP, IMAP, POP3, ...


Hopefully someone could point me in the right direction :)

解决方案

The Python language does offer raw support for the needed protocols in its standard library. Properly using then, and, properly parsing and assembling a "modern day" e-mail message, however can be tough to do.

Also, you didn't say if you want to create a graphical interface for your e-mail client -- if you want to have a proper graphical interface -- up to the point of being usable, it is quite a lot of work.

Local e-mail storage would be the easier part - unless you want to properly implement an mbox file format RFC-4155 so that other software can easily read/write the messgaes you have fetched, you can store them in as Python Objects using an ORM or an Object Oriented database, such as ZODB, or MongoDB.

If you want more than a toy e-mail app, you will have a lot of work - properly encoding e-mail headers, for example, server authentication and secure authentication and transport layers, decoding of the e-mail text body itself for non ASCII messages. Although the modules on the Python standard library do implement a lot of that, their documentation falls short on examples - and a complete e-mail client would have to use all of then.

Certainly the place to start an e-mail client, even a toy one, would be taking a look on the most recent RFC's for e-mail (and you will have to pick then from here http://www.ietf.org/rfc/rfc-index since just looking for "email rfc" on google gives a poor result).

这篇关于建立一个电子邮件客户端有多难?- Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2

WordPress使用python会话上载文件

我需要上传图像到wordpress编程,理想情况下没有安装额外的插件。不过,我对涉及插件的最佳实践持开放态度。到目前为止,我已经能够使用会话登录和移动站点,但是当我尝试将文件上载到媒体时-新建.php或异步-上传.php我收到以下错误消息The file is a test text file with a single line (also the upload limit on the site is 1GB) so it\"s not the common file size limit. This ...

日期:2021-08-21 05:00:01 浏览:786

压缩序列化的Python数据最节省空间的方法是什么?

本文介绍了压缩序列化的Python数据最节省空间的方法是什么?的处理方法,对大家解决问题具有一定的参考价值 问题描述 发件人the Python documentation:默认情况下,Pickle数据格式使用相对紧凑的二进制表示。如果您需要最佳大小特性,您可以高效地压缩酸洗数据。我将在一个运行了几个小时的过程结束时序列化...

日期:2022-06-23 08:50:34 浏览:755

在Python中,有没有一种方法可以将一个单词分割成等分?

本文介绍了在Python中,有没有一种方法可以将一个单词分割成等分?的处理方法,对大家解决问题具有一定的参考价值 问题描述 几周前我问了这个问题,得到了答案this is the original post但我需要将输出分成相等的部分,无论字符串的长度如何,所以在我发布的第一个帖子中,我得到了这个答案,它很好地工作了,这要...

日期:2022-06-24 06:52:06 浏览:479

如何在 Google AppEngine Python37 中获取凭据

本文介绍了如何在 Google AppEngine Python37 中获取凭据的处理方法,对大家解决问题具有一定的参考价值 问题描述 我在 AppEngine Python3.7 标准中启动了新应用.I started new app in AppEngine Python3.7 stadard.我正在尝试使用以下代码段...

日期:2022-06-24 09:00:27 浏览:549

为什么 python 字符串和元组是不可变的?

本文介绍了为什么 python 字符串和元组是不可变的?的处理方法,对大家解决问题具有一定的参考价值 问题描述 我不确定为什么字符串和元组是不可变的;使它们不可变的优点和缺点是什么?I am not sure why strings and tuples were made to be immutable; what ar...

日期:2022-06-24 09:00:30 浏览:889

使用 Python 解析 Gmail 并将所有早于日期的内容标记为“已读"

本文介绍了使用 Python 解析 Gmail 并将所有早于日期的内容标记为“已读"的处理方法,对大家解决问题具有一定的参考价值 问题描述 长话短说,我创建了一个新的 gmail 帐户,并将其他几个帐户关联到该帐户(每个帐户都有 1000 条消息),我正在导入这些帐户.所有导入的邮件都以未读的形式到达,但我需要它们显示为已...

日期:2022-06-24 10:00:29 浏览:809

了解python线程错误

本文介绍了了解python线程错误的处理方法,对大家解决问题具有一定的参考价值 问题描述 阅读http://bugs.python.org/msg160297,我可以看到Stephen White编写的一个简单脚本,它演示了该异常是如何导致python线程出错的Exception AttributeError: Attri...

日期:2022-06-24 21:00:28 浏览:949

从python调用url时获取“错误"的页面源

本文介绍了从python调用url时获取“错误"的页面源的处理方法,对大家解决问题具有一定的参考价值 问题描述 尝试从网站检索页面源时,得到的文本与通过 Web 浏览器查看相同页面源时完全不同(且更短).Trying to retrieve the page source from a website, I get a c...

日期:2022-06-25 01:00:31 浏览:602

基于 Python 类的装饰器,带有可以装饰方法或函数的参数

本文介绍了基于 Python 类的装饰器,带有可以装饰方法或函数的参数的处理方法,对大家解决问题具有一定的参考价值 问题描述 我见过很多 Python 装饰器的例子:I've seen many examples of Python decorators that are:函数样式装饰器(包装函数)类样式装饰器(实现 __...

日期:2022-06-25 04:00:31 浏览:933

用python解析outlook .msg文件

本文介绍了用python解析outlook .msg文件的处理方法,对大家解决问题具有一定的参考价值 问题描述 环顾四周,没有找到满意的答案.有谁知道如何使用 Python 解析 Outlook 中的 .msg 文件?Looked around and couldn't find a satisfactory answer...

日期:2022-06-25 06:00:30 浏览:641