我在这里的未知领域冒险……
我正在尝试弄清楚使用 Python 实现电子邮件客户端有多难:
- 电子邮件检索
- 邮件发送
- 电子邮件格式
- 电子邮件渲染
另外我想知道是否所有协议都容易/难以支持,例如 SMTP、IMAP、POP3,…
希望有人能指出我正确的方向:)
原文由 RadiantHex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在这里的未知领域冒险……
我正在尝试弄清楚使用 Python 实现电子邮件客户端有多难:
另外我想知道是否所有协议都容易/难以支持,例如 SMTP、IMAP、POP3,…
希望有人能指出我正确的方向:)
原文由 RadiantHex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想你会发现很多客户的重要部分都是预先打包好的:
电子邮件检索——我认为许多 Python 库都涵盖了这一点。
电子邮件发送 - 这并不难,而且很可能也包含在内。
电子邮件格式 - 我知道这已涵盖在内,因为我只是用它来为客户解析单个和多个部分的电子邮件。
电子邮件呈现 - 我会拍摄某种 HTML 呈现器。 Mozilla 项目的渲染器有一个 Python 接口。我想还有其他渲染引擎也有 python 接口。我知道 wxWidgets 有一些简单的 HTML 功能,而且重量会轻得多。想想看,Mozilla 引擎可能还有许多您需要的其他功能。您将不得不研究每个部分。
除了上面列出的内容之外,还有很多其他内容。就像任何有价值的东西一样,它不会在一天内建成。我会准确地列出你想要它做什么。然后开始组装原型。只需构建一个简单的框架来完成基本的事情。就像只让它支持没有 html 的消息的文本部分。然后以此为基础。
我对 Python 提供的大量编码模块感到惊讶。我需要过滤 html 电子邮件消息、解析样式表、嵌入样式以及其他所有内容。我在某处的 Python 库中找到了几乎所有我需要的函数。当我发现一些 css 工作表被 gzipped 并且有一个模块时,我特别高兴!
所以,如果你是认真的,那就深入挖掘。你会学到很多东西。 :)
原文由 Demolishun 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答915 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
Python 语言确实在其标准库中提供了对所需协议的原始支持。然而,正确地使用 then,并正确地解析和组装“现代”电子邮件消息可能很难做到。
此外,您没有说是否要为您的电子邮件客户端创建一个图形界面——如果您想要一个合适的图形界面——直到可用为止,这需要大量工作。
本地电子邮件存储将是更容易的部分——除非您想正确实现 mbox 文件格式 RFC-4155 ,以便其他软件可以轻松读取/写入您获取的消息,您可以使用 ORM 将它们存储为 Python 对象或面向对象的数据库,例如 ZODB 或 MongoDB。
如果您想要的不仅仅是一个玩具电子邮件应用程序,您将有很多工作要做——正确编码电子邮件标头,例如,服务器身份验证和安全身份验证和传输层,为非ASCII 信息。尽管 Python 标准库中的模块确实实现了很多这样的功能,但它们的文档在示例方面存在不足 - 一个完整的电子邮件客户端必须使用所有这些。
当然,启动电子邮件客户端的地方,即使是玩具客户端,也可以查看电子邮件的最新 RFC(然后您必须从此处选择 http://www.ietf.org/ rfc/rfc-index 因为只是在谷歌上寻找“电子邮件 rfc”给出了一个糟糕的结果)。