.dat附件,而不是在RedHat Linux中使用mailx的文本

我正在尝试发送文本文件的内容作为附件的主体。 这在HP-UX中可以正常工作,但是最近我们移到了RedHat Linux,并且不再像预期的那样工作。

这是我的命令

cat test.txt | mailx -sTest me@email.ca

如果“test.txt”包含低的ASCII字符,那么它工作正常。 但是,我的文本文件可能包含法文字符,并且将始终包含已注册的商标符号。 看来,当我尝试发送这些字符时,Linux正在将电子邮件转换为附件(forms为attxxxxx.dat)。 附件中包含我所有的数据,完全形成,但我的收件人只需要一个普通的电子邮件 – 而不是一个“dat”附件。 我们已经尝试设置环境variables,并将扩展的字符集命令放在mailx命令中,这是徒劳的。

任何build议或想法将不胜感激。

确保您的文件编码与系统上设置的区域设置(人员区域设置)相同。 将文件(例如使用iconv )转换为相应的语言环境,或将系统的语言环境设置为当前文件编码。 此外,请确保从文件中删除任何回车

cat test_1.txt | tr -d '\r' > test_2.txt;

然后cat test_2.txt | mailx -s 'Test' me@email.ca; cat test_2.txt | mailx -s 'Test' me@email.ca; 应该正常工作。

在通过邮件命令发送文件之前,您还可以使用下面的小型perl脚本

 perl -pi -e 's/\r\n/\n/g' file_name 

根据Toru的回答,我已经解决了这个命令:

 cat $FILE | tr -c -d '[:graph:][:blank:]\n\r\t' | mail -s "$FILE" somebody@example.com