【问题标题】:.dat attachment instead of text using mailx in RedHat Linux在 RedHat Linux 中使用 mailx 的 .dat 附件而不是文本
【发布时间】:2016-06-28 15:21:59
【问题描述】:

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

这是我的命令

猫测试.txt | mailx -sTest me@email.ca

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

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

【问题讨论】:

    标签: linux email-attachments mailx


    【解决方案1】:

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

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

    那么cat test_2.txt | mailx -s 'Test' me@email.ca; 应该可以正常工作了。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-06-02
          • 2022-12-16
          • 2012-01-09
          • 2023-03-19
          • 1970-01-01
          • 2019-09-11
          • 1970-01-01
          • 2014-08-09
          相关资源
          最近更新 更多