開発サーバーでeximを実行しています。
現在、ローカル以外の場所にメールを配信することはできません。ただし、これは問題ありません。ユーザーベース全体を誤ってスパムすることはできません。ただし、電子メールシステムが機能しているかどうかを確認するのは困難です。
したがって、eximが送信しようとするすべての電子メールをキャプチャして(これらの電子メールは同じサーバー上のWebベースのCRMシステムによって生成されます)、共有メールボックスに保存します(Dovecotを介してすべての開発者がアクセスできるようにする予定です)。/IMAP)
つまり、すべての送信メールをローカルのmboxにリダイレクトしたい。
これは可能ですか?私は完全なexim初心者であり、それに苦労しています。
もちろんできます。次のように、redirect
ルーターを構成する必要があります。
catch_all_outgoing:
driver = redirect
data = admin [at] email
unseen
N.B. unseen
は、「他のルーターを先に進める」を意味します。電子メールのみをトラップし、notで目的の受信者に転送したい場合は、削除してください。
eximドキュメント を見てください。このような例がたくさんあります。
これに対する簡単な解決策は、新しいルーターと対応するトランスポートを指定することです。まず、単一のメールボックスに配信される電子メールの別のポートをリッスンするようにeximを構成します。この例では、2525
のポート127.0.0.1
を使用しているため、テストを実行するときに、このポートでSMTP経由でメッセージを送信するようにCRMが構成されていることを確認してください。メールサーバーが他の目的にも使用されている場合は、このアドレスとポートを既存のlocal_interfaces
構成に追加する必要があります。
local_interfaces = <; 127.0.0.1.2525
次に、以下の例でdevelopment
と呼ぶルーターが必要です。ポート2525
でSMTPを介して受信したメッセージがこのルーターによって受け入れられ、single_box.
と呼ばれるトランスポートに渡されるという条件を指定します。
これは、begin routers
というラベルの付いたexim構成セクションの直後に配置する必要があります。
begin routers
development:
debug_print = "R: client_development for $local_part@$domain"
driver = accept
condition = ${if eq {$interface_port}{2525} {1}{0}}
transport = single_box
no_more
次に、ルーティングされたメッセージを取得してどこかに保存するトランスポートを定義する必要があります。物事をシンプルに保ち、これらを1つのメールボックスに保存します。トランスポート構成は、begin transports
で始まるセクションのどこにでも配置できます。
single_box:
debug_print = "T: single_box for $local_part@$domain"
driver = appendfile
group = Debian-exim
mode = 0660
mode_fail_narrower = false
delivery_date_add
envelope_to_add = true
return_path_add = true
directory = /home/mailspace/mailboxes/development/Maildir/
maildir_format
create_directory = true
この例では、対応するディレクトリにMaildir形式のメールボックスを作成します。この場所をサーバーに適した場所に変更してください。また、メールサーバーで使用されているグループ名を変更してください。ここでの例は、標準のDebianシステムを想定しています。 Maildirは、電子メールメッセージが個別のファイルとして保存される一般的な形式です。これらはテキストエディタを使用して簡単に調べることができ、IMAPを使用してメールボックスを利用できるようにする場合は、Maildir形式がdovecotとcourierでサポートされています。