mailx 添付ファイルの名前を設定する

mailx 添付ファイルの名前を設定する

cron ジョブがあり、その出力を mailx に送信します。

# Monday morning at midnight; "mail" is symlink to "mailx"
00 00 * * mon python3 script-with-7500line-output.py | mailx -S 'from=noreply' -s "Report" [email protected]

電子メールが配信されると、スクリプトの出力は という名前の添付ファイルに保存されますATT0001.bin

出力を本文に入れるのではなく添付するのが気に入っています。しかし、添付ファイルの名前を設定する方法はありますか?

答え1

@diya のコメントが気に入りました。ここに回答として追加し、彼がコメントを回答として投稿した場合は「承認された回答」を彼に移します。

「一般的に、要件がそれほど重要ではなくなったときに、バッチジョブとして使用するラッパースクリプトを作成することをお勧めします。たとえば、出力を正しい名前の一時ファイルにリダイレクトするシェルスクリプトを作成し、次にmailx -a filename ...

答え2

誰かがこれを見つけて、どうやってやったのか疑問に思うかもしれないので、これを投稿します。

これは別のファイルです... 私のプロダクションには他の堅牢性機能 (エラー処理、mktemp のテンプレートなど) がたくさんありますが、これが基本です。

#!/bin/bash
tmpDir="$(mktemp -d --tmpdir)"
python3 script-with-7500line-output.py > "${tmpDir}/PreferredAttachmentName.txt"
echo "Email Body" | mail -S "from=noreply" -s "Report" -a "${tmpDir}/PreferredAttachmentName.txt" [email protected]
rm -rf "$tmpDir"

関連情報