收到错误mailx:非法选项-在bash脚本中添加附件时

Posted

技术标签:

【中文标题】收到错误mailx:非法选项-在bash脚本中添加附件时【英文标题】:getting error mailx: illegal option -- a while adding attachment in bash scripting 【发布时间】:2020-06-14 20:41:03 【问题描述】:
echo "$MAIL_MSG"| mailx -a "$opfile" -s "$MAIL_SUBJ" "$DW_EMAIL_LIST"  

上面的命令抛出错误mailx:非法选项--a。你能帮我解决一下吗?

【问题讨论】:

请提供一些额外的设置细节。比如什么操作系统,什么版本等等。 使用 shell 连接到服务器。 uname -a 操作:AIX mrma70p4 1 7 00F9F76C4C00 【参考方案1】:

正确的命令是mail 而不是mailx

带附件的电子邮件示例:

$ echo "This is message body" | mail -s "This is Subject" -r "Harry<harry@gmail.com>" -a /path/to/file someone@example.com

【讨论】:

感谢您的意见。但它不起作用 - 同样的错误。 回显 $MAIL_MSG |上面的命令 mailx -s "$MAIL_SUBJ" $MAIL_LIST 工作正常,但在尝试添加附件时出现错误。【参考方案2】:

https://unix.stackexchange.com/questions/115334/mail-command-to-send-attachements 是关于在 AIX 上发送带有附件的邮件的类似问题。它建议mime-construct。如果这不可用,您也许可以使用mutt。看mutt man page,好像语法很像:

echo "$MAIL_MSG" | mutt -x -s "$MAIL_SUBJ" -a "$opfile" -- "$DW_EMAIL_LIST" 

以下是选项的摘要:

-x 是 mailx 兼容的撰写模式 -s是主题 -a是附件 -- 将附件与收件人分开

注意-a 必须是最后一个选项:

-a file [...] 使用 MIME 将文件附加到您的邮件中。附加单个或多个文件时,分隔文件名和收件人地址 带“--”是强制性的,例如mutt -a image.jpg -- addr1 或 mutt -a img.jpg *.png -- addr1 addr2. -a 选项必须放在最后 命令行选项。

【讨论】:

以上是关于收到错误mailx:非法选项-在bash脚本中添加附件时的主要内容,如果未能解决你的问题,请参考以下文章

Bash脚本检查ftp上的实际日期文件

错误 - 在Windows 7中使用“Git Bash Here”时,“文件扩展名.vbs没有脚本引擎”

shell脚本之拒绝非法用户远程

在我的跑步者类中将标签作为黄瓜选项提供时出现“java.lang.String”错误的非法初始化程序

在某些 Bash 自动完成选项的末尾添加空格,而不是在其他选项的末尾?

将我的 bash 脚本变成守护进程的选项