複数のメールドメインをホストするSendmailを実行しているメールサーバーがあります。したがって、たとえば、@ aaa.comと@ bbb.com宛ての電子メールはどちらもこの同じサーバーに送信されます。今回は、/etc/mail/virtusertable
を使用して、さまざまなメールドメインのさまざまなユーザーからさまざまなローカルアカウントへのマッピングを管理しています。
しかし、/etc/aliases
が同様のことをしている可能性があることを知りました。
/etc/aliases
と/etc/mail/virtusertable
の異なる役割は何ですか?aliases
は何ができますがvirtusertable
はできませんか?私はウェブを検索しましたが、非常に詳細な方法で違いを比較するサイトを見つけることができません。
virtusertable
は、受信者アドレスの1対1のマッピングを提供します。 aliases
1対多のマッピングを提供します(メーリングリストに便利)。
aliases
マップ「ドメインのない」受信者(電子メールのドメイン部分が削除されたローカルの電子メールドメインの受信者)。 virtusertable
は完全な受信者アドレスをマップします。
virtusertable
は、「メールドメイン内の他のすべてのアドレス/残りのアドレス」の再マッピングを処理します。
「virtusertable to alias」マッピングを使用して、1対多のマッピングを取得できます。
ウィザードレベルのヒント:sendmail.cfで完全な電子メール(ユーザーパーツとドメイン)のエイリアスを処理することは可能ですが、sendmailが提供するm4ファイルを使用してsendmail.cfを生成します.orgはそれを処理しません。実装はそれほど複雑ではありませんが、予想外の「副作用」が保証されています=>適切なテスト期間は[〜#〜] long [〜#〜]。
短い答え:
エイリアスは、システム上の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に送信されます。
ここで、質問に対するもう少し詳細な回答:
私が覚えている主な違いは、virtusertable
にはdomain情報とser情報が含まれている可能性があることです。あれは; [email protected]
と[email protected]
はどちらも有効ですおよび個別virtusertable
の左側ですが、aliases
で一緒に使用すると、 duplicate alias name
エラー。
それでも、合法的にどちらにも入ることができるエントリのグループ全体が残ります。私の考えでは、可能な限りaliases
を使用し、virtusertable
はドメイン固有のものに残しておくべきです。
bangal(q.v.)は、パイプやファイルに電子メールを送信する機能など、さらに重要な違いをいくつか指摘しています。
これを試して:
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レコードを適切に設定する必要があります。
乾杯、デビッド