

メール送信の仕組みが分からないので、最も簡単と思われるmailxコマンドについて調べているのですが、下記の意味が分かりません。

[SMTPサーバのメール送信テストにmailxコマンドを使う](https://dev.classmethod.jp/cloud/aws/using-
mailx/)

> メールを送信するときには、mailコマンドの後に送信先のメールアドレスを付与します。この際に使用されるSMTPサーバはlocalhostになります。

例えば、デフォルト状態のCentOS7 で下記コマンドを実行するとき、

[code]

    $ mail hoge@example.com
    
[/code]

### SMTPサーバはlocalhost？

・この場合はCentOS7のことですか？  
・この状況はメールサーバを立てていることにはならない？  
・メール送信サーバーとして外部のメールサーバーに提示するホスト名とは異なる？

### MTAはSendmail ですか？

[CentOS7 に Postfix をインストールする](https://www.saintsouth.net/blog/how-to-install-
postfix-on-centos7/)

> CentOS7 のデフォルトのメール送信サーバー (MTA) は Sendmail

日本語に直すと下記のような感じですか？  
・localhostであるSMTPサーバから、SMTP認証なしに、SMTPプロトコルで、「Sendmail」MTAを使用して、example.comを管理しているSMTPサーバへメールを送信する


CC BY-SA 4.0
2019-05-11T00:20:04.937
54880
2019-05-14T12:08:42.120
2019-05-11T05:37:26.643
3060
7886
question
mail
mailxコマンド と SMTPサーバ と MTA について


CentOS 7 の `mail`(1) あるいは `mailx`(1) (実体は同じなので同じ内容) に記載されているように、デフォルトは
`Normally, mailx invokes sendmail(8) directly to transfer messages.`
です。Postfix (postfix パッケージ) がインストールされているなら `sendmail`(8) は Postfix
のそれなので、その後どのような配送経路になるかは Postfix の設定次第です。


CC BY-SA 4.0
2019-05-14T08:55:48.623
54946
2019-05-14T08:55:48.623
3061
54880
answer


最初の質問ですが、localhost は 127.0.0.1 を指すホスト名です。  
127.0.0.1 はループバックアドレスという特殊なIPアドレスでコンピュータ自身をさします。

2つ目の質問の方ですが、MTA=Postfix=STMPサーバー です。  
Centos7のデフォルトのMTAはPostfixです。Sendmailも選べますが非推奨です。  
※Sendmailのことは忘れていいと思います。

mailx でメール送信する場合は、mailx は localhost上の Postfix(tcp/25=SMTP) に接続して
メール送信の要求を行います。

次に postfix は宛先メールアドレスの SMTPサーバーに接続します。 `myhostname = smtp.example.com`
と設定した場合は、宛先のSMTPに対して、postfix が smtp.example.com であると名乗ります。

※SMTPプロトコルでは最初にサーバ名を名乗る事になってます。


CC BY-SA 4.0
2019-05-14T12:08:42.120
54949
2019-05-14T12:08:42.120
5008
54880
answer