私のローカルLinuxホストのシステムデーモンが電子メールを送信する方法が疑問に思います。
- すでに組み込まれているEメールフレームワークの種類はありますか?
- MTAまたはMUAが必要ですか?
- 「Sendmail」はどんな役割を果たしますか?要件ですか?
- 他のホストを介して送信するようにサーバーを構成するにはどうすればよいですか?
- 「mail」コマンドはこの状況にどのように適していますか?
- /home/user/maildirはこの図にどのように当てはまりますか?
答え1
かなり広範な質問をしました。すべての質問を詳しく説明するには、多くのページが必要です。簡単に言うと:
Linux/Unix システムから電子メールを送信するには、複数のプログラムが必要です。各キャラクターには選べるものが多いです。
- メールユーザーエージェント(MUA)。これが電子メールを読み書きする方法です。システムのユーザーインターフェイスです。例:mutt、Thunderbird、Evolution、kmail、...
- メール配信エージェント(MDA)。これは、ローカルメールボックスにメールを入れることを処理します。フィルターなども扱えます。例:procmail、maildrop。
- メール転送エージェント(MTA)。通常、SMTPを使用してインターネットを介したシステム間の電子メールの送受信を処理します。例としては、exim、postfix、qmail、sendmailなどがあります。
通常、MTA と MDA が結合されます。たとえば、eximは両方を実行します(ただし、スタンドアロンMDAでも実行できます)。一部のMUA(Thunderbirdなど)は、3つのケースすべてを処理できます(MTA機能は非常に制限的ですが)。
これで、Eメールを送信するための2つのインターフェースがあります。
- localhost:25へのSMTP接続を確立し、SMTPを使用してメッセージを送信します。
- 電話をかけて
/usr/sbin/sendmail
メッセージを送信します。 (またはパイプを介してSMTPを使用し、多くのパラメータがあります。興味がある場合は、マンページを確認してください。)
(2)非常に一般的です。これはsendmail MTAのデフォルトインターフェイスですが、他のほとんどすべてのUnix MTAはこのインターフェイスをエミュレートします。これは、Unixシステムからメールを送信する標準的な方法とほぼ同じです。
したがって、実行してメッセージを入力すると、そのメッセージをシステムMTAに転送するための呼び出しが行われます。その後、システム MTA はローカル構成を使用してメッセージの処理方法を決定します。mail [email protected]
mail
/usr/sbin/sendmail
- メールはローカルメール名/ホスト名で送信されるため、ローカルに配信されます(MDAに配信されます)。
- リモートSMTP転送のためのMXレコードへのDNS要求
- これは、ドメイン/電子メールアドレスなどに対して設定されたカスタムアクションです。 MTAは一般的に非常に柔軟です。
/var/spool/mail/user
適応する方法~/Maildir
?これは、正確にMDAが送信するメッセージを配置するように設定(またはデフォルト)されている場所です。
したがって、RAIDモニタリングの場合おそらくMTAをインストールしたいです。 Gmail アカウントや他のアカウントにメールを送信するために MDA は必要ありません。
最も簡単な設定は、発信SMTPリレー(スマートホストとも呼ばれ、ほとんど提供)を提供するISPがある場合です。次に、すべてのメールをそこに送信するようにMTAを設定するだけです。 Ubuntuはメール設定文書Eximはすでにインストールされている必要があると言われていますが、システムからメールを受信するにはEximを設定する必要があります(非常に簡単です)。皆さんも見てください」軽量発信SMTPサーバー「Unix.SEで。
答え2
すでに組み込まれているEメールフレームワークの種類はありますか?
はい。ほとんどのディストリビューションにはいくつかのオプションがあります。ほとんどの大規模ディストリビューション(Debian、Ubuntu、Fedora、CentOSなど)では、PostfixやSendmailなどのMTAを使用できます。それは本当にあなたの好みに依存します。
MTAまたはMUAが必要ですか?
頼る。ほとんどのLinuxディストリビューションには、通常、システムで実行されているさまざまなcronおよびデーモンからシステム生成の電子メールを配信できるMTAが付属しています。このような場合、MTA は通常、システムのルートまたは管理者タイプのアカウントにのみローカルに電子メールを転送するように構成されます。
MUAに関する限り、いくつかのオプションがあります。メールやmuttなどのターミナルベースのアプリケーションからEvolutionやThunderbirdまでさまざまです。
他のホストを介して送信するようにサーバーを構成するにはどうすればよいですか?ローカルユーザー間のメールには興味がありませんが(これまで私のアカウントと2つのルートのみ)、どのように機能するのか疑問に思います。
SendmailなどのMTAを使用している場合は、通常、ボックスをスマート転送ホストとして構成して、ルートまたは管理者アカウントにローカルに配信できないメールを特定のホストに盲目的に転送できます。ホストからメールを配信するため。
「mail」コマンドはこの状況にどのように適していますか?
これはただMUAです。
/home/user/maildirはこの図にどのように当てはまりますか?
通常、ホストにローカルでメールを受信したアカウントのみがこのディレクトリに電子メールを保存します。ここに表示されるメッセージは、通常、ローカルで構成された MTA によって転送されます。
これはUnixから継承されたものですか?
この質問にどのように答えるべきかわかりません。
PCとUnixの明確な違いについて尋ねると、前者は通常MTA / MUAタイプのアプリケーションを含まず、後者には一般的に含まれています。
だから私は次のように言いたいと思います。
これは、UnixシステムとPCのアプリケーションの種類に関連しています。通常、ほとんどのUnixシステムは、サーバー上で実行されているさまざまなデーモンやサービスからメールを配信する必要があるサーバーとして使用されます。これらのサービスには通常、リンクされたユーザーアカウントがないため、MTAはすぐにシステム電子メールを世界中に送信する必要があります。
しかし、私の考えでは、PCにこの種の機能が含まれていないのは異例だと思います。しかし、それは私の問題です8-)。
答え3
とにかく...メールに関連するすべてのパッケージ/関数は省略可能です。私が知っているすべてのディストリビューションは、さまざまなMTA、MUA、メール保存ハンドラ(POP、IMAPサーバー)、スパムフィルタ/アクションなどを提供します。