2009-05-24 3 views
5

Sono stato google su tutta la notte per post-howfix, ma non riesco ancora a capire come faccio a ricevere e-mail su linux-server (essendo più specifico - Ubuntu).Come faccio in modo indolore ricevo la posta in Linux e dei mangimi a Rails?

Tutto ciò di cui ho bisogno è una cassetta postale di tipo catch-all che riceve tutte le email e le trasmette allo script ruby ​​(che quindi passa a Rails, ovviamente). Sono stato in grado di set-up postfix per l'invio di messaggi di posta elettronica qualche tempo fa e devo dire - non era affatto doloroso, ho fatto quasi nulla oltre in realtà l'installazione.

Puoi suggerire un buon howto, una ricetta o un server di posta alternativa facile da configurare che possa risolvere il problema?

risposta

5

Ci sono due parti per questa risposta, la risposta di Norman Ramsey copre la seconda parte: la consegna della posta elettronica a uno script da elaborare. La prima parte è la configurazione di Postfix per ricevere l'e-mail. Dal momento che hai bisogno di un catch-all che si può mettere qualcosa di simile in/etc/postfix/alias

@yourdomain.com localuser 

E 'localuser' è il nome dell'account sul sistema che ha un

/home/localuser/.forward

che contiene il comando (vedere la risposta di Norman). Oppure, si potrebbe tenere tutto in Postfix

/etc/postfix/alias:

@ yourdomain.com |/path/to/la vostra/script

Questo invierà tutta la posta elettronica che viene inviato al @ yourdomain.com e lo invia al tuo script per l'elaborazione. Tenete a mente che lo script verrà eseguito come utente postfix, quindi sarà necessario per assicurarsi che il proprio ambiente è configurato in modo appropriato (per esempio, non fa affidamento su una specifica $ PATH che l'account utente normale ha). L'utente postfix probabilmente ha un ambiente molto di base (ad esempio potrebbe non avere/usr/local/bin nel suo $ PATH)

+1

Non dimenticare di eseguire 'newaliases' (come root o via sudo) dopo aver modificato il file aliases - questo rigenererà il file DB (Berkeley?) Che è ciò che Postfix usa per ricerche veloci. –

+0

Funziona ancora? Non sembra che funzioni sul mio server Ubuntu 16.04. – amorimluc

6

Scegliere l'account che si desidera ricevere la posta che viene inoltrato al vostro script Ruby. Modificare il file .forward nella home directory di quello script per leggere

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

Quando postfix trasporta la posta sul conto, verrà eseguito lo script con le autorizzazioni dell'utente designato e fornirà la posta sullo standard input. A seconda di ciò che si fa con la posta si può decidere di autenticare in qualche modo in modo che lo script sa che è davvero da te. (Ad esempio, intestazione con sale e hash SHA1 di sale + password.)

Ecco un esempio di vita reale dalla mia sistema di posta peloso:

"|/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" 

Questo va a uno script di shell che poi chiama sia Lua e C programmi per smaltire correttamente la posta.

+0

La tua risposta è molto breve) Quale utente dovrebbe avere questo file ".forward"? Funziona per postfix? – snitko

+0

Qualunque utente riceve la posta, e sì funziona per postfix. –

Problemi correlati