web-dev-qa-db-ja.com

/ etc / aliases対virtusertable

複数のメールドメインをホストするSendmailを実行しているメールサーバーがあります。したがって、たとえば、@ aaa.comと@ bbb.com宛ての電子メールはどちらもこの同じサーバーに送信されます。今回は、/etc/mail/virtusertableを使用して、さまざまなメールドメインのさまざまなユーザーからさまざまなローカルアカウントへのマッピングを管理しています。

しかし、/etc/aliasesが同様のことをしている可能性があることを知りました。

  • /etc/aliases/etc/mail/virtusertableの異なる役割は何ですか?
  • aliasesは何ができますがvirtusertableはできませんか?

私はウェブを検索しましたが、非常に詳細な方法で違いを比較するサイトを見つけることができません。

7
sylye

Sendmailのvirtusertableとエイリアスの主な違い

virtusertableは、受信者アドレスの1対1のマッピングを提供します。 aliases 1対多のマッピングを提供します(メーリングリストに便利)。

aliasesマップ「ドメインのない」受信者(電子メールのドメイン部分が削除されたローカルの電子メールドメインの受信者)。 virtusertableは完全な受信者アドレスをマップします。

virtusertableは、「メールドメイン内の他のすべてのアドレス/残りのアドレス」の再マッピングを処理します。

「virtusertable to alias」マッピングを使用して、1対多のマッピングを取得できます。


ウィザードレベルのヒント:sendmail.cfで完全な電子メール(ユーザーパーツとドメイン)のエイリアスを処理することは可能ですが、sendmailが提供するm4ファイルを使用してsendmail.cfを生成します.orgはそれを処理しません。実装はそれほど複雑ではありませんが、予想外の「副作用」が保証されています=>適切なテスト期間は[〜#〜] long [〜#〜]

6
AnFi

短い答え:

エイリアスは、システム上の1つのローカル受信者名を別のローカル受信者名に変換するプロセスであり、エイリアスはローカル名でのみ発生します。つまり、usernameは、パスワードデータベースから getpwnam を介して利用できる必要があります。

たとえば、ローカルパスワードファイル/ etc/passwd、NIS、およびLDAP。

Sendmail virtusertable機能は、仮想ユーザーのサポートを有効にします。つまり、システム以外のユーザーをマップします。


here から以下を引用しました。とてもよく説明されています、見てください。

/ etc/mail/aliases

このデータベースファイルには、ユーザー、ファイル、プログラム、またはその他のエイリアスに展開される仮想メールボックスのリストが含まれています。ファイル形式を説明するいくつかのエントリを次に示します。

root: localuser
ftp-bugs: joe,eric,paul
bit.bucket:  /dev/null
procmail: "|/usr/local/bin/procmail"

コロンの左側のメールボックス名は、右側のターゲットに展開されます。最初のエントリは、ルートメールボックスをlocaluserメールボックスに展開し、次に/ etc/mail/aliasesデータベースで検索されます。一致するものが見つからない場合、メッセージはlocaluserに配信されます。 2番目のエントリはメールリストを示しています。 ftp-bugsへのメールは、joe、eric、およびpaulの3つのローカルメールボックスに展開されます。リモートメールボックスは、user @ example.comとして指定できます。 3番目のエントリは、メールをファイル(この場合は/ dev/null)に書き込む方法を示しています。最後のエントリーは、UNIX®パイプを介してプログラム/ usr/local/bin/procmailにメールを送信する方法を示しています。このファイルの形式の詳細については、aliases(5)を参照してください。

/ etc/mail/virtusertable

このデータベースファイルは、仮想ドメインおよびユーザーのメールアドレスを実際のメールボックスにマップします。これらのメールボックスは、ローカル、リモート、/ etc/mail/aliasesで定義されたエイリアス、またはファイルにすることができます。これにより、1つのマシンで複数の仮想ドメインをホストできます。

次の例は、その形式を使用してカスタムエントリを作成する方法を示しています。

[email protected]                root
[email protected]          [email protected]
@example.com                    joe

このファイルは最初の一致順序で処理されます。メールアドレスが左側のアドレスと一致すると、右側にリストされているローカルのメールボックスにマッピングされます。この例の最初のエントリの形式は、特定の電子メールアドレスをローカルメールボックスにマップしますが、2番目のエントリの形式は、特定の電子メールアドレスをリモートメールボックスにマップします。最後に、前のエントリのいずれとも一致しないexample.comからの電子メールアドレスは、最後のマッピングと一致し、ローカルメールボックスjoeに送信されます。

ここで、質問に対するもう少し詳細な回答:

  • エイリアスデータベースファイルには、ユーザー、ファイル、プログラム、またはその他のエイリアスに展開される仮想メールボックスのリストが含まれています。
  • このvirtuserデータベースファイルは、仮想ドメインおよびユーザーのメールアドレスを実際のメールボックスにマップします。これらのメールボックスは、ローカル、リモート、/ etc/mail/aliasesで定義されたエイリアス、またはファイルにすることができます。これにより、1つのマシンで複数の仮想ドメインをホストできます。
  • 一方、sendmail virtusertable機能は、仮想ユーザーテーブルのサポートを構成します。仮想ユーザーテーブルは、someuser @ Host宛ての受信メールをsomeotheruser @ otherhostにマッピングします。 これは高度なメールエイリアス機能と考えることができ、宛先ユーザーだけでなく宛先ドメインも使用して機能します。キー部分(左側)は、完全なアドレス(ユーザー、ホスト、ドメイン名)、またはホスト部分のないアドレス(ドメインのみ)のいずれかである必要があります。
5
Diamond

私が覚えている主な違いは、virtusertableにはdomain情報とser情報が含まれている可能性があることです。あれは; [email protected][email protected]はどちらも有効ですおよび個別virtusertableの左側ですが、aliasesで一緒に使用すると、 duplicate alias nameエラー。

それでも、合法的にどちらにも入ることができるエントリのグループ全体が残ります。私の考えでは、可能な限りaliasesを使用し、virtusertableはドメイン固有のものに残しておくべきです。

bangal(q.v.)は、パイプやファイルに電子メールを送信する機能など、さらに重要な違いをいくつか指摘しています。

2
MadHatter

これを試して:

MTAサーバーが一連のDOMAINSのプライマリMXである場合は、virtusertableを介してルーティングします。 Virtusertableを使用すると、「abuse @ ...」や「postmaster @」などの個々の宛先メールを選択して、他のすべてを1つのメールボックスまたは別の名前で完全に別のサーバーに転送できますが、「@」はそのまま残します。 。例えば:

    [email protected]:         helpdesk                   <--- which could be in /etc/aliases to a list
    [email protected]:    [email protected]       <--- specific destination
    @xyz.com:              %[email protected]    <--- route everything else to another Host`

/ etc/aliasesファイルは、あるユーザーから別のユーザーへ、またはあるユーザーから他のユーザーのグループへの単純な宛先を設定するためのものです。

    root:       [email protected]           <--- route all root mail to sysadmin
    sales:      jdoe,mdoe,sone,[email protected],[email protected]  <-- to a list
    nobody:     /dev/null               <--- anything sent to "nobody" disappears forever

エイリアスは複数のドメインを処理するのが得意ではありませんが、virtusertableはそれが得意です。

MXレコードを適切に設定する必要があります。

乾杯、デビッド

1
TekOps