Postfix o exim: configuración de correo electrónico automatizada/programática y reenviada

Postfix o exim: configuración de correo electrónico automatizada/programática y reenviada

Estoy buscando reemplazar nuestro uso actual de un proveedor smtp externo con una instalación interna. Debe manejar las siguientes situaciones:

  • Ciertas direcciones deben reenviarse a direcciones de Gmail; Nos gustaría seguir usando Gmail como nuestra interfaz principal de correo electrónico.

  • Otras direcciones deberían estar disponibles como buzones de correo pop/imap.

  • Otras direcciones se manejarán mediante programación: iniciarán varias tareas, se registrarán, etc. Estas direcciones deben iniciar un proceso para manejar las direcciones de correo electrónico o deben almacenarse en un formato fácilmente procesable.

  • También debería ser bastante fácil de configurar con claves de dominio, spf y cualquier otra cosa necesaria para permitir la entrega del correo electrónico.

He usado sendmail en el pasado lejano. Parece que postfix y exim son las opciones recomendadas actualmente. Mi pregunta principal es: ¿cuál es la mejor opción y configuración para el reenvío de direcciones a Gmail y para el acceso programático? ¿Procmail sigue siendo el camino a seguir o existen mejores opciones hoy en día?

Estamos usando servidores Linux/ubuntu.

Respuesta1

Postfix es sólido, bien soportado y fácil de configurar. Todo lo que usted describe es bastante rutinario.

  • Reenvío: use mapas virtual_alias
  • Buzones POP/IMAP: entrega local, use algo como Dovecot para su servidor POP/IMAP
  • Cosas programáticas: si te refieres a enviar el correo a un script, eso se hace desde /etc/aliases. Para "fácilmente procesable", tienes el formato mbox y Maildir, todo es estándar.
  • Claves de dominio/SPF: SPF se realiza en DNS. Domain-keys es bastante fácil de configurar como milter o proxy SMTP.

Respuesta2

Para las cosas programáticas, debe tener en cuenta con qué UID se ejecutarán los programas/scripts.

Para postfix, por ejemplo, los scripts ejecutados desde /etc/aliases (o cualquier otro archivo de alias propiedad de root) se ejecutarán como el usuario "nadie".

postfix tiene la capacidad de tener múltiples archivos de alias y (aquí está lo bueno) los programas que se ejecutan desde un archivo de alias se ejecutarán como el usuario propietario de ese archivo (excepto root; como se mencionó anteriormente, los archivos de alias propiedad de root se ejecutan como nadie ).

Si alguna vez necesita ejecutar un script desde el correo como root, entonces la forma más fácil (si tiene sudo instalado) es configurar sudo para permitir que "nadie" lo ejecute como root sin contraseña y ejecutarlo desde un script contenedor que se ejecuta. con sudo.

NOTA: siempre que active scripts desde el correo, debe recordar que los datos (es decir, el correo) provienen de una fuente no confiable (Internet)... por lo que es extremadamente inseguro usar los datos del cuerpo o del encabezado como argumentos a los comandos ejecutados por el script. Este es básicamente el mismo problema que confiar en los datos proporcionados por el usuario en un script CGI; simplemente no lo hagas. por ejemplo, considere lo que podría hacer un script mal escrito si los datos proporcionados por el usuario fueran algo así como "...innocuousdatahere...; rm -rf /". podrías pensar que sería fácil buscar cosas obvias como punto y coma y eliminarlas, pero hay muchas cosas no obvias que también necesitarías verificar y simplemente te estarías preparando para una fracaso ya que es poco probable que pienses en ellos o los atrapes todos. Es mucho más seguro eliminar por completo el riesgo de seguridad simplemente sin confiar nunca en los datos proporcionados por el usuario.

Esto es importante sin importar con qué UID se ejecutará el script, pero es especialmente importante si se ejecuta como root.

Finalmente, para responder a una de tus preguntas directas, procmail sigue siendo una herramienta útil para lo que quieres hacer. al igual que maildrop y otros programas similares. piense en procmail, etc. como herramientas especializadas para analizar el cuerpo y los encabezados para tomar decisiones sobre qué hacer, de modo que no tenga que tener todo ese código de análisis en sus scripts. escriba su script para que simplemente haga su trabajo y use procmail para decidir cuándo se debe ejecutar el script. por ejemplo, podría crear un nuevo usuario llamado, digamos, 'mailjobs' que tenga su propio directorio de inicio y archivo .procmailrc. luego cree alias que reenvíen el correo a ese usuario. El .procmailrc de mailjobs luego verificaría el encabezado X-Original-To para decidir qué script(s) ejecutar.

Respuesta3

Tanto exim como postfix son más que capaces de hacer lo que necesita; el mejor consejo es elegir el que le resulte más fácil de usar y/o con el que esté más familiarizado.

En cuanto a lidiar con reenvíos a Gmail y scripts, la mejor manera de hacerlo es con unarchivo de alias globales(normalmente se guarda en /etc/aliases o /etc/mail/aliases).

información relacionada