7

私は後置のハウツーを一晩中グーグルで調べてきましたが、それでもLinuxサーバー(より具体的にはUbuntu)でメールを受信する方法がわかりませんでした。

必要なのは、すべての電子メールを取得して Ruby スクリプトにフィードするキャッチオール メールボックスだけです (もちろん、Ruby スクリプトはそれを Rails に渡します)。しばらく前にメール送信用に postfix をセットアップできましたが、実際にインストールする以外にはほとんど何もしませんでした。

問題を解決できる良いハウツー、レシピ、またはセットアップが簡単な別のメールサーバーを提案できますか?

4

3 に答える 3

6

Ruby スクリプトに転送されるメールを受信するアカウントを選択します。.forwardそのスクリプトのホームディレクトリにあるファイルを編集し て読み取ります

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

postfix がアカウントにメールを配信すると、指定されたユーザーの権限でスクリプトが実行され、標準入力にメールが提供されます。メールの扱いによっては、何らかの方法でメールを認証して、スクリプトが本当にあなたからのものであることを認識できるようにする必要があります。(例: ヘッダーにソルトとソルト + パスワードの 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 プログラムの両方を呼び出すシェル スクリプトに送られます。

于 2009-05-24T00:50:51.050 に答える
5

この回答には2つの部分があります。ノーマン・ラムゼーの回答は2番目の部分をカバーしています。つまり、処理するスクリプトに電子メールを渡すことです。最初の部分は、メールを受信するようにPostfixを設定することです。キャッチオールが必要なので、このようなものを/ etc / postfix/aliasesに入れることができます

@yourdomain.com localuser

また、「localuser」は、システム上のアカウントの名前です。

/home/localuser/.forward

これにはコマンドが含まれています(ノーマンの応答を参照)。または、すべてをPostfixに保持することもできます

/ etc / postfix / aliases:

@ yourdomain.com | / path / to / your / script

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

于 2009-05-24T01:21:36.603 に答える
-1

詳細については、Jason Seifer の記事もご覧ください。

http://jasonseifer.com/2009/04/24/receving-email-with-rails

于 2009-12-11T22:47:53.570 に答える