2009-05-24 1 views
5

私は、postfixのHOWTOのために徹夜グーグルでてきましたが、それでも私は(より具体的なもの - Ubuntuの)Linuxのサーバ上で電子メールを受信するために管理しない方法を見つけ出すことができませんでした。どうすれば簡単にLinuxでメールを受信し、それをRailsに送ることができますか?

私に必要なのは、すべての電子メールを取得し、(その後、当然のレール、それを渡す)Rubyスクリプトに供給するキャッチオールメールボックスです。私はしばらく前に電子メールを送信するためのポストフィックスをセットアップすることができました。そして、私は言うまでもなく、実際にインストールする以外はほとんど何もしませんでした。

あなたが良いHOWTO、またはレシピ、または問題を解決することができ、代替簡単にセットアップ、メールサーバを提案してもらえますか?

答えて

5

この回答には2つの部分がありますが、ノーマンラムゼーの答えは2番目の一部を覆う:処理されるスクリプトに電子メールをハンドオフ。最初の部分はPostfixが電子メールを受信するように設定することです。あなたはキャッチオールを必要とするので、あなたは、/ etc/postfixの/別名

@yourdomain.com localuser 

にこのような何かを置くことができ、「localuserのは、」/

/家庭を持って、あなたのシステム上のアカウントの名前です。 localuserの/ .forwardのコマンドを(ノーマンの応答を参照)が含まれてい

。それとも、あなたはPostfixの

でそれをすべて保つことができる

の/ etc/postfixの/別名:yourdomain.com @

| /パス/ /あなた/スクリプト

これはに送られるすべての電子メールが送信されますへ@ yourdomain.comを開き、処理のためにスクリプトに送信します。スクリプトはpostfixユーザーとして実行されるので、環境が適切に設定されていることを確認する必要があります(たとえば、通常のユーザーアカウントにある特定の$ PATHに頼らないなど)。 Postfixのユーザーは、おそらく非常に基本的な環境(例えばでも自分の$ PATHに/ usr/local/binを持っていない可能性があります)

+1

エイリアスファイルを編集した後、 'newaliases'(rootまたはsudo経由)を実行するのを忘れないでください。これは、Postfixが高速検索のために使用する(Berkeley?)DBファイルを再生成します。 –

+0

これはまだ動作しますか?私のUbuntu 16.04サーバーでは動作していないようです。 – amorimluc

6

あなたのRubyスクリプトに転送されるメールを受け取るアカウントを選択してください。 Postfixがアカウントにメールを配信する場合、それは指定されたユーザの権限でスクリプトを実行し、標準入力にメールを提供します

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

を読み取るために、そのスクリプトのホームディレクトリに.forwardファイルを編集します。あなたがメールを使って何をするかに応じて、何らかの方法でそれを認証して、それが本当にあなたのものであることをスクリプトが知るようにすることができます。 (例えば、塩+パスワードの塩およびSHA1ハッシュを含むヘッダー。)

は、ここに私自身毛深いメールシステムからの実際の例です:

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

これはその後、Luaの両方を呼び出すシェルスクリプトに行きますメールを適切に処分するCプログラム。

+0

あなたの答えは非常に簡単である)ユーザーは、この "の.forward" ファイルを持っている必要があり ? ポストフィックスで動作しますか? – snitko

+0

どのユーザーがメールを受信して​​も、それは後置のために機能します。 –

関連する問題