需要设置 mailx 变量来指定发件人地址

需要设置 mailx 变量来指定发件人地址

运行 Oracle Linux 5.8(刚刚更名为 RedHat EL 5.8)时,我必须更改发件人地址。但是我们有使用 mailx 的脚本,这些脚本无法重写以使用任何额外的标志,因此我想改用内部变量,我在 linux.die.net 联机帮助页上看到 mailx 是 -r 标志的替代方案:

-r address
设置发件人地址。覆盖环境或启动文件中指定的任何发件人变量。禁用波浪符号转义。除非使用 SMTP,否则 -r address 选项将传递给邮件传输代理。此选项仅用于兼容性;建议直接设置 from 变量。

(来源:http://linux.die.net/man/1/mailx

我们如何使用这些 mailx 变量?我尝试将其添加到 /root/.mailrc,但没有成功:

[电子邮件保护]

我还将其添加到了 /etc/mail.rc 中,但没有黄金。所以我向你求助,超级用户……

答案1

我刚刚在 Ubuntu 14.04 中测试了这一点,并且使用 -S 参数对我有用:

-S variable[=value]
          Sets the internal option variable and, in case of a string option, assigns value to it.

因此,以下命令将发件人地址设置为“[电子邮件保护]“:

echo "This is my test" | mail -S from="[email protected]" -s "This is my subject" "[email protected]"

答案2

在我的环境中,使用 -r 或设置 from 变量都不起作用。

我总是得到类似这样的信息:

send-mail: 550 5.7.1 ... Invalid from address ....

对我有用的是添加一个 sSMTP 别名/etc/ssmtp/revaliases,例如

帐户名称:[电子邮件保护]:smtp.example.com

答案3

我确信版本很重要,但我刚刚在 RH Server 6.7 上遇到了这个问题,误读了 mailx 手册页,但最终我让 ~/.mailrc 工作了。

set [email protected]
set [email protected]

同时执行 from 和 replyto 可能没有必要,但如果值得做,就值得做得过分!

答案4

显然,无法设置 mailx 变量来执行此操作。这可以通过 Sendmail(或等效 MTA)配置来完成。但不幸的是,没有可用的 Sendmail 配置,因此我们必须使用 -r 标志。

相关内容