如何通过Web应用程序与邮件服务器通信

时间:2011-06-21 09:30:21

标签: web-services spring email mail-server

我对邮件服务器一般都不熟悉,请原谅我的无知。

我需要能够通过基于Spring的Web应用程序管理邮件服务器。通过管理,我的意思是为新用户创建邮件帐户,侦听来自这些用户的传入更新,删除帐户,删除用户帐户等等。

我认为邮件服务器(至少是好的邮件服务器)提供某种服务API(SOAP,REST,无关紧要),应用程序可以通过它来挂钩和进行更改。但是,我真的不熟悉那些优秀的开源服务器,以及它们提供的选项。

如果有人可以提出解决方案,我会很高兴。

2 个答案:

答案 0 :(得分:4)

一种可能的解决方案是使用带有通用数据库插件的软件。您的Web应用程序不与邮件服务器交互,而只是填充mysql数据库中的用户表。在最简单的情况下,该表具有用户名字段和密码字段。在大多数现实设置中,需要一些额外的字段,如“用户被禁用”或“用户可以与IMAP连接”,“用户homedir / maildir的位置”,... 如果您的用户也可以创建新域,那么您还需要一个表格。

然后,您需要带有数据库后端的邮件服务器软件。

要托管邮箱,您可以使用dovecot IMAP / POP3服务器。它支持所有奇特的东西,如用户配额,邮箱的自动创建等。 在这里,您将找到有关如何使用数据库后端配置dovecot的文档: http://wiki2.dovecot.org/AuthDatabase/SQL

对于通过stmp实际接收邮件,您还需要一个MTA软件。在这里,一个很好的选择是postfix。如果您的用户可以创建新域,您需要添加mysql配置,告诉postfix它可以接受哪些域的邮件。 由于我完全不知道您的域名要求,我只是指向一般的postfix虚拟域名托管howto: http://www.postfix.org/VIRTUAL_README.html

最后,如果您的用户也应该能够发送邮件,则需要在postfix中配置SASL。如果你已经配置了dovecot,这很简单。它归结为告诉postfix“嘿,我已经在dovecot中配置了用户身份验证,我不想再这样做了,只需与dovecot交谈并让它完成工作”。文档在这里:http://www.postfix.org/SASL_README.html#server_dovecot

答案 1 :(得分:3)

有一个名为Zimbra的邮件服务器,它有一个开源社区版本,它有一个REST接口和一个SOAP接口。

  • REST reference(如果我理解正确,这将不适合您的需求,因为您只能通过此操作现有帐户)
  • SOAP interface;一个例子here,论坛上还有很多其他人。
相关问题