Mailとmailxの違いは何ですか?
これでサーバーAからメールを送信できるという問題をトラブルシューティングしようとしていますecho $MESSAGE | mail -s "$SUBJECT" -r $FROM $RECIPIENTS
コマンドですが、サーバーBから同じコマンドを実行すると、このエラーがスローされます(どちらのサーバーもRHELです)
mail: invalid option -- r
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
[-- sendmail-options ...]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user]
さて...何が起こっているのかを理解するために、メールのマンページをtyに読み、man mail
はこれを私に与えます:
サーバーA
MAILX(1) User Commands MAILX(1)
NAME
mailx - send and receive Internet mail
SYNOPSIS
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h Hops]
[-A account] [-S variable[=value]] to-addr . . .
mailx [-BDdeEHiInNRv~] [-T name] [-A account] [-S variable[=value]] -f [name]
mailx [-BDdeEinNRv~] [-A account] [-S variable[=value]] [-u user]
しかしサーバーBでは
MAIL(1) BSD General Commands Manual MAIL(1)
NAME
mail - send and receive mail
SYNOPSIS
mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr... [-- sendmail-options...]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user]
今... man mailx
サーバーBで取得:
MAILX(P) POSIX Programmerâs Manual MAILX(P)
PROLOG
This manual page is part of the POSIX Programmerâs Manual. The Linux implementation of this interface may differ
(consult the corresponding Linux manual page for details of Linux behavior), or the interface may not be imple-
mented on Linux.
NAME
mailx - process messages
SYNOPSIS
Send Mode
mailx [-s subject] address...
Receive Mode
mailx -e
mailx [-HiNn][-F][-u user]
mailx -f[-HiNn][-F][file]
サーバーBにはサーバーAとは異なるバージョンのメールがありますか? MailxとMailは別物ですか?サーバーAで使用している-rオプションを使用したいのですが、サーバーBで何が起こっているのか本当にわかりません。
mail、nail、mailx の紛らわしい履歴を見てください。
簡単に言うと、mail
は古いプログラムであり、mailx
(一部の実装では以前はnail
)は新しいバージョンであり、ほとんど互換性のない拡張インターフェースが拡張されています。
mailx
はまだかなり古く、1986年頃に作成され、1992年にPOSIXの一部として標準化されました。いくつかの実装(最新のLinuxでも)があり、一部は標準への拡張を提供しています。
-r
オプションはそのような拡張機能の1つです。 Linuxディストリビューション、およびインストールしたメールパッケージに応じて、そのオプションがある場合とない場合があります。例 ここ を参照してください。
移植可能なスクリプトを作成する場合は、それに依存しない方がよいでしょう。