我一直在使用
mail -s "here is a log file" "person@example.com" < log/logfile.log
其使用头才能通过:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
但现在的文件不再我越来越NONAME附件,因为与此:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
所以,如果一切都失败了,查手册man mail
...
NAME
mailx - send and receive Internet mail
SYNOPSIS
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops]
[-A account] [-S variable[=value]] to-addr . . .
这些选项都不似乎我怎么能强迫有用Content-Type: text/plain
?
该名男子页是开始的好地方! 请继续阅读,直到你得到的MIME TYPES
部分,并密切注意以下几点:
否则,或者如果文件名没有扩展名,内容类型的文本/ plain或application /八位字节流的使用,第一文本或国际文本文件,第二个为包含格式化比换行和水平等煤焦acters的任何文件制表符。
因此,如果您邮件包含“格式字符”(其通常手段控制字符)小于换行符和标签等,它会自动被归类为application/octet-stream
。 我敢打赌,如果你在数据仔细观察,你会发现一些控制字符左右浮动。
您可以解决此通过...
我最近得到了类似的问题,最后用一个解决方案,缩短结束:
cat -v log/logfile.log | mail -s "here is a log file" "person@example.com"
在更多的细节猫与mailx的讨论 。
我遇到了一些麻烦,让我的电子邮件自动脚本来改变到Ubuntu 12.04精确运行后。 我不知道,当时的Ubuntu(或Debian的)反对传家宝 - mailx的交换BSD-mailx的,但两个“邮件” - 命令表现非常不同。 (如传家宝使用-a为附件,而它的用于BSD附加头。)在我的情况传家宝 - mailx的无法可靠确定MIME类型和不停的发送文本附件。 怪我不淘汰控制字符或什么,但我看不出有一点改变,升级之前完全没有他们的作业脚本。 所以,如果你喜欢设置MIMETYPE自己,BSD-mailx的是一个更好的解决方案。
sudo apt-get install bsd-mailx
sudo apt-get remove heirloom-mailx
解决了这个问题对我来说。
基于RedHat系统中(SL,CentOS的,Fedora的,等等),你会想安装BSD-mailx的,然后适当地设置在/ etc /方案/邮箱:
sudo yum -y install bsd-mailx
sudo alternatives --set mail /usr/bin/bsd-mailx
当然,你的风险依赖于传家宝 - mailx的行为,但不显式调用,而不是“邮件” mailx的'破的应用。
要显示有关/斌/邮件目前指向:
sudo alternatives --display mail
要检查各种安装mailx的软件包:
sudo rpm -qa *mailx
在我的情况下,如果LC_ *没有定义和口音被解释为“控制字符”的剧本是从cron调用。 我只是插在我的crontab文件的开头以下行:
LC_NAME=fr_FR.UTF-8
LC_ALL=fr_FR.UTF-8
文章来源: linux mail < file.log has Content-Type: application/octet-stream (a noname attachment in Gmail)