我正在努力通过带有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 嵌套命令,我找不到正确的组合。
任何帮助表示赞赏。