LinuxからGmailにメールを送るとnonameという添付される

2022-07-19

Linuxのサーバーから下記のようなシェルスクリプトでechoコマンドで内容をメール本文に出力して、Gmailにメールすると出力した内容の「noname」というファイルが添付されメールされるケースがありました

#!/bin/bash

man ls > ls.txt

cat ls.txt | mail -s "[test] subject" admin@example.com

添付ファイルの「noname」の内容は、本来メール本文に表示される内容となります。メール本文の内容が添付ファイルとして扱われるケースの原因ですが、主に改行コードが原因となるケースが多いので「col」コマンドで改行コードなどをフィルターすればいいみたいです

$ cat ls.txt | col -bx | mail -s "[test] subject" admin@example.com

col コマンドのオプションですが、以下のようになります

  • b  バックスペースを出力しないようにする。
  • x  タブのかわりに複数個の空白文字を出力する。