メールコマンドにはメールサーバーが必要ですか?


16

linux mailコマンドを使用する前にメールサーバーを設定する必要がありますか?



1がメールを実行するためにSMTPサーバーが必要ですが、私はそれが絶対に必要であるかどうかを求めていることをその質問のヒントとして、実際には同じではない@slm
PUK

1
ええ、それは重複している可能性があります、私はあなたがQにそれを少し具体的すぎるとあなたが答えました。それでもダップのように感じるが、とにかくあなたに答えた8
slm

回答:


14

いいえ、メールを送信するのにメールサーバーは必要ありません。私はSendmailに最も精通しており、サービスとしての電子メールを実現する機能には3つの分類があります。MDA(メール配信エージェント)は1、MTA(メール転送エージェント)は2、3はMUA(メールユーザーエージェント)です。

用語はわかりにくいですが、MTAを常に実行する必要はありません。MTA(mail)がメールを「送信」するたびに、MTAが呼び出されます。

実行mailして、メールを送信するアドレスを指定すると、sam@example.com。メールクライアントはMTA(/usr/bin/sendmail)を呼び出して、DNSにそのホスト/ドメイン(example.com)を照会し、MXレコードに指定されている値を見つけます。MXはMail Exchangerの略です。

digコマンドを使用して、これを確認できます。

$ dig gnu.org mx

; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;gnu.org.           IN  MX

;; ANSWER SECTION:
gnu.org.        299 IN  MX  10 eggs.gnu.org.

;; ADDITIONAL SECTION:
eggs.gnu.org.       299 IN  A   208.118.235.92
eggs.gnu.org.       299 IN  AAAA    2001:4830:134:3::10

;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:27:22 2013
;; MSG SIZE  rcvd: 90

そのため、クライアントはポート25でeggs.gnu.orgに接続して、このメールを配信しようとします。

DNSサーバー?

@pukは、次の追加の質問をしました。

このDNSはローカルマシンにありますか?

私が答えた:

@puk-メールサーバーと同じようにできますが、通常はそうではありません。/etc/resolv.confファイルを調べてください。また、digコマンドを実行するSERVER: ...と、一番下の行に気付くでしょう。それがリクエストを処理するDNSサーバーです。

私の/etc/resolv.confファイルには次のものが含まれています。

nameserver 192.168.1.8

そして、次のようなクエリを使用しdigます:

$ dig gnu.org mx

下部にあるこの結果:

;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:46:13 2013
;; MSG SIZE  rcvd: 90

そして、賢明な読者にとって、これはどのように構成されているのでしょうか?答えは/etc/nsswitch.confファイルです。具体的には次の行:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

つまり、最初にファイルを使用し(/etc/hosts)、次にmdns4_minimal。それはマルチキャストDNSです。基本的に、以前のルックアップのキャッシュです。最後に、ファイルで指定されたdnsIPアドレスを使用nameserver/etc/resolv.confます。


このDNSはローカルマシンにありますか?
プーク

@puk-アップデートを参照してください。
slm

@puk -私はもっと追加しました....
SLM

7

mail使用しているバージョンによって異なります。

すべてのバージョンは、実際にメールを配信するMTAが必要ですが、いくつかのバージョンでは、リモートMTA(「スマートホスト」、例えばISPのメールサーバー)に話をSMTPを使用することができ、いくつかは、パイプのみメッセージがすることができます/usr/sbin/sendmail経由でメールを送信しますローカルMTA。

後者の場合、ローカルMTAはsendmailまたはeximまたはpostfixのような本格的なMTAである可能性があります。または、nullmailerssmtpのような単純な送信専用MTA でもかまいません。または、msmtpのような少し洗練されたミニMTAで、後で配信するためのメールのキューイングもサポートしています。

フリーソフトウェア&オープンソースの世界では、そこには主に2つの変異体であるmailx(提供パッケージmailコマンド):bsd-mailxheirloom-mailx

bsd-mailxはSMTPを話さないので、パイプすることによってのみメールを送信できます。/usr/sbin/sendmail

hierloom-mailxは、SMTPをスマートホストに送信できるほか、従来の「pipe-to-sendmail」方式も使用できます。

したがって、「メールサーバーが必要ですか?」という質問に答えるために。はい、そうですね。必要ですが、インストールしたメールのバージョンによっては、自分のシステムにインストールして構成する必要はありません。

IMO、インターネット接続がダウンした場合やスマートホストに到達できない場合、後で配信するためにメールをキューに入れるmsmtp必要があるheirloom-mailxため、スマートホストのみに依存するよりも、最小限のMTAを使用した方が良いでしょう。ローカルキューを使用するmailcrond、他のプログラムでもメールを送信して忘れることができます。ローカルキューがない場合、スマートホストが利用できない場合、何らかの方法でエラー状態に対処する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.