mailxでssh経由でメールを送信するのに苦労しています。これがユースケースです。小さな展開スクリプトを書いていて、最後にカスタム メールを送信したいと考えています。私たちの開発マシンは電子メールを直接送信できないため、統合マシンを ssh 経由で使用して仕事をすることを考えました。スクリプトでは、受信者、件名、および電子メールの内容がすべて変数に格納されます。変更ログとしてプロジェクトにコミットされているため、内容は Markdown で記述されています。
これが私が試したコマンドです:
ssh user@host "echo -e ${CHANGELOG_CONTENT} | mailx -s \"${PROJECT_NAME} - ${TARGET_VERSION} - ${RELEASE_DATE}\" ${CHANGELOG_RECIPIENTS}"
この前にいくつかのバリエーションを試しましたが、うまくいきませんでした。このバージョンでは、次のエラーが表示されます。
bash: -c: line 0: syntax error near unexpected token `('
変数を内容に置き換えたコマンドの例を次に示します (手作り) :
ssh user@host "echo -e Version 1.2\n\n- branch-1 : [gitlab link](http://gitlab.example.com/project-alpha/commits/branch-1)\n\n | mailx -s "Project Alpha - 1.2 - 2015-26-05 13:10" me@example.com you@example.com"
エラーが不適切なエスケープ/引用に起因していると確信していますが、SSHでコマンドをネストしているため、適切な組み合わせが見つかりません.
どんな助けでも感謝します。