邮件和mailx有什么区别?
我正在尝试解决一个问题,我可以使用此echo $MESSAGE | mail -s "$SUBJECT" -r $FROM $RECIPIENTS
命令从服务器 A 发送邮件,但从服务器 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]
现在...浏览邮件手册页以了解发生的情况,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
在服务器 BI 中得到:
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 中我真的不知道发生了什么。
答案1
看看这段扑朔迷离的历史邮件、钉子、mailx。
简而言之,mail
是较旧的程序mailx
(以前nail
在某些实现中)是较新的版本,具有扩展的大部分但不完全兼容的接口。
mailx
仍然相当古老,大约于 1986 年创建,并于 1992 年作为 POSIX 的一部分标准化。有多种实现(甚至在现代 Linux 中),其中一些提供了标准的扩展。
该-r
选项就是这样的扩展之一。根据您的 Linux 发行版以及您安装的邮件包,您可能有也可能没有该选项。参见例如这里。
如果你想编写可移植的脚本,最好不要依赖它。