• 締切済み

sendmailで存在しないユーザへのメールを受け取りたい

red-hat Linux 7.8でSendmail 8.11.6を使っています。 存在しないユーザへのメールを全て一つのユーザで受け取りたいのですがどのようにしたらいいのでしょうか。 googleで調べてみたのですが、バーチャルドメインでユーザテーブルを使った例しかありませんでしたのでご存知の方がおられましたらご教授お願い致します。

みんなの回答

noname#41381
noname#41381
回答No.2

>存在しないユーザというのが多数考えられるためaliasでは対応できないのです。 > そういうことだったんですね。読みとれなくてごめんなさい。 スマートな方法は考えつかなかったです。 とりあえず、なんとか実現するということだけを考えて^ ^;; ・現在の登録ユーザをテキストにしておいて ・sendmail -bd -ODeliveryMode=deffered でキューにためるように起動 ・キューにたまったqxxxxxxxxファイルをチェックするシェルを作り ・RPFDレコードに登録ユーザが無い場合はPRFDを<送りたいユーザ@hoge.com>なんかに変更 ・sendmail -qを数分おきに実行するようにcronで設定 ちょっと強引ですね。 ヘッダーファイルをいじるので全然お薦めではないですが...。 何か他にも方法はありそうですね。 ちょっと無い頭ひねって考えてみます。。。

yuxp
質問者

補足

ありがとうございます。なるほど、何とかできそうな気もしますね。ただ私には敷居が高そうです。。バーチャルドメインを使った例というのを載せておきます。ここの:default:maildropのようなことができればと思うのです。Aliasにワイルドカードが使えれば済みそうな気もしますが。 また何かありましたらよろしくお願いします。 USERTABLE_MAPS=<ドメイン名=タイプ:データベース:フラグ> (複数記述可能) USERTABLE_MAPS に指定したドメイン名に対して、usertable を参照した メールアドレスの書き換えやメールの転送を行なう。この機能は、userdb として sendmail R8 に用意されているものに似ているが、userdb はローカル の発信/受信メールに関して処理を行なうのに対し、usertable は任意のアド レスに関して処理を行なうことができるという点で異なっている。 ドメイン名に local を指定すれば、対応するデータベースは userdb と同様 にローカルの発信/受信用として扱われる。 例) USERTABLE_MAPS='another.domain=hash:/etc/ut.ad' (/etc/ut.ad の内容:) # user1@another.domain 宛のメールを user1 のメールボックスへ user1:maildrop user1 # user2@another.domain を user3@foo.bar に書き変え user2:mailname user3@foo.bar # user2@another.domain 宛のメールを user4@foo.bar に転送 user2:maildrop user4@foo.bar # exact match がなければ any@another.domain 宛のメールを # user5@foo.bar に転送 *:maildrop user5@foo.bar :default:maildrop user5@foo.bar # user6@another.domain が default match した場合 user6@foo.bar # に転送 *:maildrop %1@foo.bar :default:maildrop %1@foo.bar ここに定義されていない user@another.domain 宛のメールの扱いは フラグの指定によって決定される。フラグに error を指定した場合 は、User Unknown エラーになる。フラグになにも指定しなかった 場合は、上位の MX ホストが存在すればそちらに転送される。 当然ながら上位の MX ホストが存在しなければ local config error となる。

noname#41381
noname#41381
回答No.1

sendmail等あまりくわしくないので、 「バーチャルドメインでユーザテーブルを使った例」というのがわかりませんが、 ・DNSのMXで各ドメインを一つのMTAに指定 ・sendmailのACCEPT_ADDRS(CFの場合)で各ドメインを受信できるようにする ・sendmailのaliasで各ユーザを一つのユーザのエイリアスとする といった感じでしょうか? #これが言われている方法ならごめんなさい^ ^;

yuxp
質問者

お礼

ありがとうございます。 受信するドメインは一つでかまわないのです。 また、各ユーザにはちゃんとメールが届いています。 存在しないユーザというのが多数考えられるためaliasでは対応できないのです。 aliasにも書いていないユーザへのメールを一つのユーザに集めたいのです。 説明不足ですみません。