首页 > 解决方案 > mailx 不允许管道正文文本和同时指定文件附件?

问题描述

我正在尝试在某些事件中设置自动发送通知邮件。我想传递消息正文并附加一个单独的日志文件。

我可以使用以下命令传递正文:

mymessage="test message\nwhatever\n"
echo -e "$mymessage"| mailx -s "testmail" -r "sender@mymail.de" "recepient@mymail.de"

在这种情况下,我会收到一封电子邮件,正文中包含我的消息

现在,如果我想添加一个日志文件作为附件,我能找到的所有教程以及 mailx 帮助功能都暗示我应该简单地使用“-A”(用于附件)参数

mymessage="test message\nwhatever\n"
echo -e "$mymessage"| mailx -A /home/me/myattachment.txt -s "testmail" -r "sender@mymail.de" "recepient@mymail.de"

但是,如果我这样做,我的正文将被忽略(如果我的附件是文本文件,它会同时用作附件和正文)。

我想这与存在不同版本的 mailx 的事实有关,它们的工作方式都不同?我的版本是“mailx (GNU Mailutils) 3.4”,从最新的 ubuntu 服务器版本的标准存储库安装,使用sudo apt install mailutils.

如何从附件中单独指定正文?

编辑:请注意,似乎有不同版本的 mailx 似乎可以按照教程所暗示的那样工作。在许多版本中,有一个“-a”选项而不是我的“-A”。我的版本没有这个选项。然而,我的版本是在安装 maulutils 时从 ubuntu 中的标准存储库安装的版本。我如何获得其他版本?

标签: linuxbashubuntuunixmailx

解决方案


好的,找到了,显然 s-nail 完全取代了 mail 和 mailx?在其他人的 Ubuntu 版本中,“mail”和“mailx”显然大多只是指向 s-nail 的符号链接,而最新版本根本不创建这些符号链接?无论如何,我只需要将“mail”或“mailx”替换为“s-nail”,即可获得与所有 mailx 教程中描述的相同的功能和参数选项......感谢 David C. Rankin让我在这里走上正确的轨道,因为我在任何地方都找不到明确的描述......


推荐阅读