エラーメッセージを電子メール本文に送信するシェルスクリプトを取得できません。

エラーメッセージを電子メール本文に送信するシェルスクリプトを取得できません。

特定のコマンドが失敗したときにエラーメッセージを電子メールで送信したいシェルスクリプトがあります。電子メールをまったく送信しないか、ATT000001.binという添付ファイルを含む電子メール(Outlookから)を送信します。本文にエラーを含むプレーンテキストの電子メールが必要です。

私が現在持っているもののいくつかは次のとおりです。

msg=`scp -i $sshkeyfile $filename [email protected] 2>&1`
msg=`echo $msg | tr -d "\n\r"`

if [ $? -eq 0 ]
then
  rm $filename
else
  echo $msg | mail -s "subject line" [email protected]
fi

インターネットでは、キャリッジリターン文字のため、Outlookは文字列を添付ファイルとして扱うと言います。これが戻り値を削除する理由です(コンソールに印刷して動作することを確認しました)。現時点では、メールはまったく受信されません。

文字列をメールで渡すためにWebで見つけたさまざまな方法を試しました。メールを送ってみました。電子メールが届かないか、添付ファイルを含む電子メールを受信しました。

この文字列を電子メール本文に送信するにはどうすればよいですか?ありがとうございます!

関連情報