我的虚拟机有问题。
我在 OpenVZ 中使用了相同的模板(Debian 7min),但无论出于何种原因,这两者都使用了不同的 mailx。我有一个用于发送状态邮件的小脚本:
mailx -v -s "$subject" -S smtp=$smtphost -S from="$mailfrom" -S smtp-auth-user=$smtpuser \
-S smtp-auth-password=$smtppwd $emailto </dev/null
它可以在一台服务器上找到,另一台给我一条错误消息“未知命令-S”。
好的,我知道 mailx 只是一个虚拟包,我通常安装 bsd-mailx,但两个服务器显示它们的设置相同
ls -al /etc/alternatives/ma*
lrwxrwxrwx 1 root root 18 Feb 9 20:07 /etc/alternatives/mailx -> /usr/bin/bsd-mailx
dpkg --get-selections | grep 邮件
bsd-mailx install
fetchmail install
procmail install
rmail install
sendmail install
sendmail-base install
sendmail-bin install
sendmail-cf install
sendmail-doc install
问题是,mailx 从不支持任何类型的版本信息,所以 mailx --help 或 --version 只是说“未知选项” - 所以我什至无法弄清楚它是什么“版本”的 mailx
这是服务器 1 的输出
mailx: illegal option -- -
Usage: mailx -eiIUdEFntBDNHRV~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users
这是服务器 2 的输出
mailx: invalid option -- '-'
usage: mailx [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr ...
[-- sendmail-options ...]
mailx [-dEIiNnv] -f [name]
mailx [-dEIiNnv] [-u user]
显然不是同一的。有什么帮助我可以从服务器 1 到服务器 2 的“获取”mailx?我没主意了。
所以在 server1 你有 heilroom-mailx 即
/etc/alternatives/mailx -> /usr/bin/heirloom-mailx
,第二个服务器使用bsd-mailx
.apt-get install heirloom-mailx
如果您想从 server1 获得 mailx,请在两台服务器上执行此操作。安装后,服务器应该自动使用 heirloom 作为 mailx,如果不这样做:
要扩展来自@darek 和@nadir-latif 的答案
/usr/bin/mail
也是一种替代方法,并且是替代方法的奴隶mailx
,从检查 Wheezy/Jessie 安装开始,heirloom-mailx
优先级为 60,因此安装使用这将允许设置 the
mail
和mailx
Alternatives。在 Stretch 的mail.mailutils
优先级为 30 并且来自手册页因此,如果您使用的优先级
60
并将其设置为自动,则无需显式设置替代方案,否则@darek 声明使用