SendEmailにカスタムテキストを含め、その下にコマンド出力を表示する方法はありますか?

SendEmailにカスタムテキストを含め、その下にコマンド出力を表示する方法はありますか?

を使用して電子メールを送信しようとしています。私が望むのは、コマンドの出力を含む電子メールを受け取ることですが、lsその出力の上に説明を含むカスタムテキストが必要です。すると、コマンド出力が-u上書きされますls

私が使用したコマンドは次のとおりです。

ls home/ec2-user/client_certs/ | grep '.ovpn' | sendemail -o tls=yes -f Emailthatsendmail@company -t Myemail@company -s smtp.office365.com:587 -xu Emailthatsend@company -xp passwordemailthatsend -u "[Encrypted] Access to VPN Service" -m Users who have access to the VPN service, if something is wrong contact EMAILofCompany

プライバシー保護のためにメールとパスワードを変更しました。

結果:件名と本文がVPNサービスにアクセスできるユーザーである暗号化されたEメールを受信しました。問題がある場合は、EMAILofCompanyにお問い合わせください。

コマンドlsが見つかりませんが、使用しない場合

-m Users who have access to the VPN service, if something is wrong contact EMAILofCompany

コマンドの出力は表示できますが削除したため、カスタムメッセージは表示できないメールを受け取りました。

Amazon Linux 2 AMIを使用しています。

SendEmail バージョン: sendemail-1.56

答え1

カスタムメッセージをファイルに入れます。たとえば、次のようになります。/some/path/custom-message.txt

それから:

(cat /some/path/custom-message.txt; ls -d home/ec2-user/client_certs/*?ovpn*) | sendemail -o tls=yes -f Emailthatsendmail@company -t Myemail@company -s smtp.office365.com:587 -xu Emailthatsend@company -xp passwordemailthatsend -u "[Encrypted] Access to VPN Service"

理由:

この-mオプションを使用すると、sendemailオプション引数からメッセージが取得され、パイプされた標準入力は完全に無視されます。これをしたくないので、この-mオプションを使用しないでください。代わりに、括弧を追加すると、括弧内のすべてのコマンド/パイプの出力が、指定された順序でsendemail標準入力に渡されます。

関連情報