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

时间:2013-09-04 19:11:37

标签: linux email-attachments mailx

我正在尝试将文本文件的内容作为附件的正文发送。这在HP-UX中运行良好,但我们最近已迁移到RedHat Linux,它已不再按预期工作。

这是我的命令

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

如果“test.txt”包含低位ASCII字符,那么它可以正常工作。但是,我的文本文件可能包含法语字符,并且始终包含注册商标符号。似乎当我尝试发送这些字符时,Linux正在将电子邮件转换为附件(格式为attxxxxx.dat)。附件包含我的所有数据,完美形成,但我的收件人只需要一个简单的电子邮件 - 而不是“数据”附件。我们尝试在mailx命令中设置环境变量并放置扩展字符集命令,但无济于事。

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

在通过邮件命令

发送文件之前,您还可以使用以下小的perl脚本
perl -pi -e 's/\r\n/\n/g' file_name

答案 2 :(得分:0)

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

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