2009-05-24 6 views
5

He estado buscando en Google toda la noche para postfix howto, pero aun así no pude entender cómo puedo recibir correos electrónicos en linux-server (siendo más específico - Ubuntu).¿Cómo recibo el correo sin problemas en Linux y lo paso a Rails?

Todo lo que necesito es un buzón universal que recibe todos los correos electrónicos y los envía al script de ruby ​​(que luego lo pasa a Rails, por supuesto). Pude configurar postfix para enviar correos electrónicos hace un tiempo y tengo que decir que no fue nada doloroso, no hice casi nada además de instalarlo.

¿Podría sugerir un buen howto, o una receta, o un servidor de correo alternativo fácil de instalar que pueda resolver el problema?

Respuesta

5

Esta respuesta tiene dos partes, la respuesta de Norman Ramsey cubre la segunda parte: entrega del correo electrónico a un script para su procesamiento. La primera parte es configurar Postfix para recibir el correo electrónico. Ya que se necesita un cajón de sastre puede poner algo como esto en/etc/postfix/alias

@yourdomain.com localuser 

Y 'localuser' es el nombre de la cuenta en su sistema que tiene una

/home/localuser/.forward

que contiene el comando (ver la respuesta de Norman). O bien, puede mantener todo en Postfix

/etc/postfix/alias:

@ yourdomain.com |/ruta/a/su/script

Esto enviará todo el correo electrónico que se envía a @ yourdomain.com y lo envía a su secuencia de comandos para su procesamiento. Tenga en cuenta que el script se ejecutará como el usuario de postfijo, por lo que deberá asegurarse de que su entorno esté configurado correctamente (por ejemplo, no se basa en una $ PATH específica que tiene su cuenta de usuario normal). El usuario de postfix probablemente tenga un entorno muy básico (por ejemplo, puede que ni siquiera tenga/usr/local/bin en $ PATH)

+1

No te olvides de ejecutar 'newaliases' (como root o vía sudo) después de editar el archivo de alias - esto regenerará el archivo de base de datos (Berkeley?) Que es lo que Postfix usa para búsquedas rápidas. –

+0

¿Esto todavía funciona? Parece que no funciona en mi servidor Ubuntu 16.04. – amorimluc

6

Elija la cuenta que desea recibir el correo que se reenvía a su secuencia de comandos de Ruby. Editar el archivo .forward en el directorio principal de esa secuencia de comandos para leer

"|/path/to/my/ruby/script" 

Cuando postfix entrega el correo a la cuenta, se ejecutará la secuencia de comandos con los permisos del usuario designado y proporcionará el correo en la entrada estándar. Dependiendo de lo que haga con el correo, es posible que desee autenticarlo de alguna manera para que el script sepa que es realmente suyo. (Por ejemplo, la cabecera con sal y hash SHA1 de sal + contraseña.)

Aquí está un ejemplo de la vida real a partir de mi propio sistema de correo peluda:

"|/home/nr/bin/filtermail /home/nr/machine/x86-bsd/bin/luapipe /home/nr/machine/x86-bsd/bin/safe-slocal 2>>/home/nr/slocal.log 1>&2" 

Esto va a un script de shell que a su vez llama tanto Lua y C programas para deshacerse del correo correctamente.

+0

Su respuesta es muy breve) Qué usuario debe tener este archivo ".forward"? ¿Funciona para postfix? – snitko

+0

Cualquiera que sea el usuario que reciba el correo, y sí, funciona para postfix. –

Cuestiones relacionadas