linux - 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 中的标准存储库安装的版本。我如何获得其他版本?
解决方案
好的,找到了,显然 s-nail 完全取代了 mail 和 mailx?在其他人的 Ubuntu 版本中,“mail”和“mailx”显然大多只是指向 s-nail 的符号链接,而最新版本根本不创建这些符号链接?无论如何,我只需要将“mail”或“mailx”替换为“s-nail”,即可获得与所有 mailx 教程中描述的相同的功能和参数选项......感谢 David C. Rankin让我在这里走上正确的轨道,因为我在任何地方都找不到明确的描述......
推荐阅读
- c# - C# WPF 程序按钮单击运行任务,直到另一个按钮单击停止或直到取消令牌有效
- api - 如何在 ASP.NET Core MVC 中存储当前用户
- html - 背景图像不会显示在标题中
- java - java.lang.AssertionError: Status expected:<200> but was:<404> for Spring Boot Rest Controller
- angularjs - $watch 在指令中的使用
- r - R - 如何使用 metafor 包绘制森林图?
- python - 基于父键值的列表组
- java - 修改父类方法的功能(通过子类)而不更改其签名
- javascript - 如何每次重新加载网页,并从后端获取最新数据
- python - python中的视频编辑。使用 mhmovie 在 python 中组合 .mp3 和 .mp4 文件