- PR -

Sendmailによるメールヘッダ・エンベロープの書き換えについて

1
投稿者投稿内容
JZS147
会議室デビュー日: 2005/12/01
投稿数: 4
投稿日時: 2005-12-01 14:06
以下の想定でメールサーバを新規に構築したいと考えております。
ディストリビューションは未定で、MTAもSendmailに出来ればと考えております。

MTA-A(hoge1.co.jp)  MTA-B(hoge2.com) 
_______________   _______________
|  taro        |  |            |
|  hanako      |  |             |
|   ・         |  |             |
|   ・         |  |             |
|   ・         |  |             |
|_____________|  |_______________|
今回構築したいMTA  既存の別組織管理のMTA

上図左側が今回構築する予定のサーバなのです。
ポイントしては・・・

(1)通常は「hoge1.co.jp」内のユーザ同士だけのイントラメールのように利用

(2)例外として宛先に「hoge2.com」を含むメールを内部MUAより受け付けたら
"エンベロープのfrom"と"メールヘッダ部の送信元"をあらかじめ用意された
下記のような対応表を参照して、「hoge1.co.jp」のメールアカウントから「
sub01.hoge2.com」のメールアカウントに書き換えて「hoge2.com」のメール
サーバに配送する。
◎対応表◎
(hoge1.co.jp) (sub01.hoge2.com)
 taro     ⇔ s-taro
 hanako   ⇔ y-hanako
  ・        ・
  ・        ・
  ・        ・
◎具体例◎
taro@hoge1.co.jpからjiro@sub08.hoge2.com宛てのメールを上図MTA-Aが受付けたら
エンベローブのfrom,メールヘッダ部の送信元を「taro@hoge1.co.jp」から
「s-taro@sub01.hoge2.com」に書き換えて上図MTA-Bに配送する。


(1)は問題ないのですが、(2)の実現で悩んでおります。
sendmailの場合、sendmail.mc内にドメインを書き換える
「FEATURE(`masquerade_envelope')」
がありましたが、対応するアカウント名も違うので使えそうにありません。
しかも普段のイントラメールとしての使用では、書換えを行わないので「宛先にhoge2.comを含む場合」のような条件設定も必要になると思います。

これを実現する方法をアドバイスいただけないでしょうか。
実現できるならsendmailに限らず別のソフトでもいいですし、MTAの仕組みでなくてもかまわないです。

よろしくお願い致します。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-12-06 19:14
こんばんは。

こちらのスレで、kaz さん(2004-02-24 20:28)が教えてくださったサイトさんが
参考になりそうでしょうか。

 ・ sendmail DE masquerade
JZS147
会議室デビュー日: 2005/12/01
投稿数: 4
投稿日時: 2005-12-07 22:08
はゆるさん、お返事ありがとうございます。
私もその情報を確認しました。
あて先によりエンベロープの書き換えを行うところは良いのですが、アカウントが異なる場合の変換は難しそうです。
@以降の変換なら可能でも、アカウントも変えるなら変換テーブルというか対応表のようなものも用意して、それを参照する事になるのでしょうが、そのような方法はWEBをだいぶ探しましたが無いようです。
やはり無理なのでしょうか・・・
Sendmail以外のMTAでも探してみます。
回答ありがとうございました。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-12-09 01:21
う〜ん、「そのものズバリ」 な手順は、
インターネット上などから探し出すのは、困難だと思います。

たとえば、先のスレで私が使用した、sendmail の genericstable 機能は、
ドメイン単位だけではなく、特定のユーザに対しても処理をしてくれますので、
その仕組みを参考にして、新たにルールなどを作成することは可能だと思います。
エンベロープも処理させるなら、masquerade_envelope 機能も使います。
それぞれ、どのような sendmail.cf が作成されるか、
実際に sendmail.mc から生成して確認してみるとよいでしょう。

いずれにせよ、MTA の処理にかなり突っ込んで研究することになると思いますよ (^^;
JZS147
会議室デビュー日: 2005/12/01
投稿数: 4
投稿日時: 2005-12-09 11:36
回答ありがとうございます。
そうですよね。ドンピシャのものがあればなんて甘かったですね。
いろいろと検証してみたいと思います。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)