CSV 添付ファイル付きのメールを送信しようとしていますが、ファイルをローカルで作成することはできません。
コンテンツをパイプして(メモリ内の変数にコンテンツがあります)、データが添付ファイルとして表示されるようにメール/メールを送信する方法はありますか?
答え1
mailxを使うことができます(例はhttps://access.redhat.com/solutions/104833) および bash<()
構文:
echo "MESSAGE BODY" | mailx -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') [email protected]
mutt での同じ例:
echo "MESSAGE BODY" | mutt -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') -- [email protected]
内のすべてのものは<()
bash によって実行され、そのための一時ファイルが作成され、コマンドのパラメータとして提供されます。
答え2
質問には、ファイルを作成しない理由が述べられていません。その理由によっては、質問した方法がうまくいかなかった場合に、根本的な問題を別の方法で解決できる代替ソリューションがあるかもしれません。
ファイルに永続的なストレージに残したくない機密データが含まれていることが懸念される場合は、ファイルを RAM ディスクに書き込むことができます。メール プログラムがファイルを tmp ディレクトリまたは下書きフォルダにコピーしないように注意してください。
ファイルが大きすぎて永続ストレージに収まらないことが懸念される場合は、受信者もファイルや中間 MTA を開くのに苦労する可能性が高いことを考慮する必要があります。メール プロトコルではなく、別のプロトコルを検討する必要があるかもしれません。