アプリ版:「スタンプのみでお礼する」機能のリリースについて

皆様お世話になっております。sefirosです。
ちょっと質問です。
RedhatLinuxでsendmail立ち上げてるんですけど、今
ちょっと困ってます。というのも色んなアカウント
に来たメールを一つのアカウントのメールボックスにスプール
させなくてはならなくなったのでネット上とか色々みて
回ったんですが中々情報がなくて・・。ただsendmail.cf
のルールセット0付近に何か追加するのでは?という
あいまいな情報しかありません。
sendmail.cfはCFツールで作成しましたのでsendmail.cfを直接編集した事がないのでどうしようもありません。
どなたか「そんなんCF中にもあるよ」とか「sendmail.
cfのここをいじればいいんだよ」等情報をお持ちでない
でしょうか?よろしくお願いいたします。

A 回答 (3件)

いろんなアカウントというのが、特定でき、あまり変動がないので


あれば /etc/aliases (linux でこの名前かは不明)に列挙するの
が早いと思います。

不特定あるいは常に変動するのだとして、何らかのパターンはある
のでしょうか?sendmail.cf で対処できるかどうかは、そのパター
ンしだいですね。あらゆるアカウント宛のメールを一ヶ所にという
要求なら、それも可能でしょう。

ところで、sefiros さんは、過去にいくつか質問されてますが、ほ
とんど締切られてないし、解決したのかどうかさえわからないもの
もあります。この状況では回答がつかなくなりますよ。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。
マナーがなっておりませんでした。反省しております。
今いくつか遡って結果を記入し締め切りました。


パターンはあります。具体的にはfax.*アカウントで
来たメールを全てfaxというアカウントのメールBOXに
スプールします。(FAXサーバと連携する為です)
faxアカウントは作成済です。

いい方法はありますでしょうか?エイリアスファイル
にワイルドカードって効くんでしょうか?

お礼日時:2001/03/09 12:07

立ち上げているメールサーバーを経由するメールであれば


自ドメイン、別ドメインを問わずCF(sendmail.cfではなく)の

USERTABLE_MAPS='ドメイン1:hash:ファイル1 ドメイン2:hash:ファイル2 ...'

の設定を使用すればメールを特定ユーザーにスプールしたりする事が可能です。
ただし、この設定はドメイン1つごとに参照する外部ファイルをひとつ必要とし、
そのためには下記のような条件と事前作業が必要であるので注意してください。
(なお、作成外部データベースファイルをあとで更新しても
sendmailを再起動する必要はありません)

[条件]
・new Berkeley Database(New Berkeley DBライブラリ)がインストールされている事
・makemapコマンドが使用可能である事(makemapオプションがある事)

[事前作業]

1.外部ファイルをviエディタ等テキストエディタで作成

[外部ファイルの書式]
ユーザ名1:maildrop ユーザ名2
ユーザ名2:maildrop ローカル2

(cf)ローカルドメインのファイルを作成する場合には、「maildrop」の部分を
「mailname」となるので注意.

2.makemapコマンドにより作成したテキストファイルをデータベース化する

[コマンド書式]
makemap hash ファイル名.db

---

と、使用方法は以上なのですが若干難しい作業となりますので
参考例をあげておきます。

[スプール例]
user1@another.dom(外部ユーザー)を user1@local.dom(ローカルユーザー)へ
user2@other.dom(外部ユーザー)を user1@local.dom(ローカルユーザー)へ
user3@another.dom(外部ユーザー)を user2@local.dom(ローカルユーザー)へ
user4@local.dom(ローカルユーザー)を user1@local.dom (ローカルユーザー)へ
user5@local.dom(ローカルユーザー)を user5@another.dom(外部ユーザー)へ

[sendmail.def内の設定]
USERTABLE_MAPS='another.dom:hash:/etc/ut.dom1 other.dom:hash:/etc/ut.dom2 local:hash:/etc/ut.dom3'

[/etc/ut.dom1の内容]
#user1@another.dom(外部ユーザー)を user1@local.dom(ローカルユーザー)へ
user1:maildrop user1
#user3@another.dom(外部ユーザー)を user2@local.dom(ローカルユーザー)へ
user3:maildrop user2

[/etc/ut.dom2の内容]

#user2@other.dom(外部ユーザー)を user1@local.dom(ローカルユーザー)へ
user2:maildrop user1

[/etc/ut.dom3の内容]

#user4@local.dom(ローカルユーザー)を user1@local.dom (ローカルユーザー)へ
user4:mailname user1
#user5@local.dom(ローカルユーザー)を user5@another.dom(外部ユーザー)へ
user5:mailname user5@another.dom

---

さて、ここからが本題です(長い前置きだった・・・(苦笑))。
お望みの設定は次のようにしてください。

[sendmail.defの設定]
USERTABLE_MAPS='local:hash:/etc/ut.dom'

[/etc/ut.domの内容]
#fax.*@local.dom宛のメールをfaxへスプールする
fax.*:mailname fax

[makemapの実行]
makemap hash ut.dom.db

---

以上、長くなりましたがスプール設定のやり方ですが、
まれに「hash」ではうまく動作しない事があります。
その場合には「btree」で作成してみてください。
どちらでも機能や記述に差違はありません。

また、条件に当たるオプションやソフトがない場合、
makemapのオプションはR8以上のsendmailに梱包されています。
ただ、Linux用の「new Berkeley Database」が入手方法は残念ながら分かりません。
すみませんがnew Berkeley Databaseのほうは自力で探してみてください。
    • good
    • 0

どこかのルールセットに、$#local $: $1 みたいなのがあると思います。


ここが最終的なローカルアカウントへの配送を起動するルールですが、
このあたりにルールを追加すれば可能でしょう。

例えば、次のような行があれば、
R$+    $#local $: $1
この行の*前に*
Rfax.$+  $#local $: fax
を追加します。

sendmail.cf の出どころにもよりますが、他にも $#local の行がある場合は
Rfax.$+ < @ $=w . >  $#local $: fax
R$+ < @ $=w . >  $#local $: $1
とか
R<$-:$=w>.fax.$* $#local$:@fax
R<$-:$=w>.$* $#local$:@$3
という具合になると思います。ただし、$#local があっても、エラー
メッセージ用であれば、ほっておきます。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
今sendmail.cfに
Rfax.$+  $#local $: fax
と書き込んでsendmailをkill HUPしてfax.0311111111
アカウント宛てに送ってみたらfaxアカウントでpopでき
ました(喜)。
本当に助かりました(今日中に処理が必要だったため)
またよろしくお願いいたします。

お礼日時:2001/03/09 14:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!