2011-06-21 5 views
5

No estoy muy familiarizado con los servidores de correo en general, así que disculpe mi ignorancia.Cómo comunicarse con un servidor de correo a través de una aplicación web

Necesito ser capaz de administrar un servidor de correo a través de mi aplicación web basada en Spring. Por administración, me refiero a crear cuentas de correo para nuevos usuarios, escuchar las actualizaciones entrantes de esos usuarios, eliminar cuentas, cuando se borran las cuentas de usuario, etc., etc.

Supongo que los servidores de correo (al menos los buenos) proporcionan algún tipo de API de servicio (SOAP, REST, no importa) a través de la cual una aplicación puede enlazarse y realizar cambios. Sin embargo, no estoy muy familiarizado con lo que son los buenos servidores de código abierto y las opciones que ofrecen.

Estaré encantado si alguien, podría proponer una solución.

+0

¿Qué es lo que realmente quiere hacer con el servidor de correo? Ofrezca buzones a los usuarios, envíe correos electrónicos desde su aplicación, recíbalo. Creo que las respuestas variarán según tu objetivo real. Sé que has enumerado un par de cosas, pero son acciones, no lo que estás haciendo con ellas. –

+0

Digamos que por ahora quiero crear una cuenta de correo por usuario que se registró en el sistema.¿Cómo hago eso con el menor dolor? – user802232

+0

En el peor de los casos, puedo usar sendmail y llamarlo desde la aplicación Spring, pasando los parámetros necesarios a él. – user802232

Respuesta

3

Hay un servidor de correo llamado Zimbra que tiene una edición de comunidad de código abierto, que tiene una interfaz REST y también una SOAP.

  • REST reference (si he entendido bien esto no se adapte a sus necesidades, ya que sólo puede manipular cuenta existente a través de este)
  • SOAP interface; un ejemplo here, hay muchos otros en el foro.
4

Una posible solución es utilizar software con un complemento de base de datos genérico. Su aplicación web no interactúa con el servidor de correo, sino que llena una tabla de usuarios en una base de datos mysql. en el caso más simple, esta tabla tiene un campo de nombre de usuario y un campo de contraseña. En la mayoría de las configuraciones de la vida real, se requieren algunos campos adicionales como "usuario está deshabilitado" o "el usuario puede conectarse con IMAP", "ubicación de los usuarios homedir/maildir", ... Si sus usuarios también pueden crear nuevos dominios, también necesitas una mesa para eso.

Luego, necesita un software de servidor de correo con un back-end de base de datos.

Para alojar los buzones, puede usar el servidor dovecot IMAP/POP3. Es compatible con todas las cosas de lujo como cuota de usuario, creación automática de buzones de correo, etc. Aquí, puede encontrar documentación sobre cómo configurar palomar con una base de datos back-end: http://wiki2.dovecot.org/AuthDatabase/SQL

Para que realmente reciben el correo por SMTP también necesita un software MTA. Aquí, una buena opción sería postfix. Si sus usuarios pueden crear nuevos dominios, debe agregar la configuración de mysql que le dice a postfix los dominios para los cuales puede aceptar correo. Desde No sé exactamente a sus necesidades de dominio que sólo voy a señalarle al dominio virtual de sufijo en general howto de alojamiento: http://www.postfix.org/VIRTUAL_README.html

Por último, si los usuarios deberían ser capaces de enviar correo, así que necesitas configurar SASL en postfix. Esto es bastante simple si ya tiene configurado Dovecot. todo se reduce a decir a postfix "hey, ya tengo la autenticación de usuario configurada en dovecot, no quiero volver a hacerlo, solo habla con dovecot y deja que haga el trabajo". La documentación está aquí: http://www.postfix.org/SASL_README.html#server_dovecot

Cuestiones relacionadas