草庐IT

python - 需要用 Python 编写的 POP3 服务器或 IMAP 服务器的示例

coder 2023-08-23 原文

尝试通过电子邮件为应用程序发送应用程序消息。我已经创建了我的 SMTP 服务器,但现在缺少集中传送机制。我可以很容易地创建一个适当的交付机制,但我正在尝试使用协议(protocol)标准。我对 HTTP、FTP 或 SOAP 不感兴趣,只对邮件协议(protocol)感兴趣。

我在网上四处寻找 python 示例,但到目前为止还没有成功。我不想花太多时间和精力在这上面,因为它目前只是一项技术领域研究,以了解通过电子邮件系统进行异步传递是否是应用程序之间通信的可行方法。我知道 sendmail 解决方案,但我对此不感兴趣,因为该解决方案需要是一个完整的 Python 解决方案,尽可能使用“电池”,或者如果我真的有的话也可以使用 Twisted。

到目前为止,我研究过的仅有的两个标准是 IMAP 和 POP。我仍然无法相信在这个时代我们需要两种协议(protocol)来发送和传递邮件,如果有任何东西可以将两者合二为一(即协议(protocol)),我将非常乐意研究它。

经过进一步调查,我认为唯一可行的选择是扭曲,任何帮助都会很好

更新 放弃了 POP/IMAP 服务器,它的工作量有点大,返回却很少。但是,我使用了一个“现成的”服务器解决方案,该解决方案将电子邮件作为 IMAP4 提供并作为 SMTP 发送。既然我已经找到了这一点,我将继续研究通过电子邮件提供的应用程序服务。到目前为止,创建了一个下载 RSS 提要并以 html 格式通过电子邮件发送的应用程序。电子邮件由用 Python 编写的服务器应用程序过滤我感兴趣的内容。下一阶段是一种与服务器通信的 DSL 语言,有点像通过电子邮件的 telnet。应该很有趣。在多个应用程序之间通过电子邮件进行 RPC。

最佳答案

编辑: 可以在此处找到 POP3 服务器的简单示例:http://code.activestate.com/recipes/534131-pypopper-python-pop3-server/您将不得不替换消息服务机制,但无论如何您都需要这样做。对于使用 Twisted 的 IMAP 服务器实现,请参阅 https://github.com/davglass/twimapd .

如果您需要电子邮件,那么您正在寻找 SMTP、POP 和 IMAP。这就是电子邮件的定义。

其实对于投递来说,SMTP应该就够了; POP/IMAP 用于检索,如果您的应用程序始终可以直接相互连接,那么它并不是那么有用。

如果您不需要专门使用电子邮件,您可能需要研究替代协议(protocol),例如 XMPP (Jabber):http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol

关于python - 需要用 Python 编写的 POP3 服务器或 IMAP 服务器的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214800/

有关python - 需要用 Python 编写的 POP3 服务器或 IMAP 服务器的示例的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  3. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  4. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  5. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  6. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

    我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  9. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  10. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

随机推荐