を使用して電子メールを送信しようとしています。私が望むのは、コマンドの出力を含む電子メールを受け取ることですが、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
標準入力に渡されます。