бился с подобной проблемой (с почтой) в одном из post_receive крючков моего GIT и, наконец, я узнал, что Sendmail на самом деле работает лучше для такого рода вещи, особенно если вы знаете немного о том, как создаются электронные письма (и кажется, что вы знаете). Я знаю, что этот ответ приходит очень поздно, но, возможно, это будет полезно и другим. Я использовал оператор heredoc и использовал функцию, чтобы она расширила переменные, поэтому она также может запускать встроенные скрипты. Просто проверить это (Баш скрипт):
#!/bin/bash
recipients=(
'[email protected]'
'[email protected]'
# '[email protected]'
);
sender='[email protected]';
subject='Oh, who really cares, seriously...';
sendmail -t <<-MAIL
From: ${sender}
`for r in "${recipients[@]}"; do echo "To: ${r}"; done;`
Subject: ${subject}
Content-Type: text/html; charset=UTF-8
<html><head><meta charset="UTF-8"/></head>
<body><p>Ladies and gents, here comes the report!</p>
<pre>`mysql -u ***** -p***** -H -e "SELECT * FROM users LIMIT 20"`</pre>
</body></html>
MAIL
ноты обратных кавычек в MAIL части, чтобы сгенерировать выходные и помнить, что <<-
операторских полосы только нашивки (не пробела) с начала строки, так что в этом случае copy-paste не будет работать (вам нужно заменить углубление соответствующими вкладками). Или используйте оператор <<
и не делайте никаких отступов. Надеюсь, это поможет кому-то. Конечно, вы можете использовать backticks вне o MAIL part и сохранять вывод в какой-то переменной, которую позже можете использовать в части MAIL по вкусу и удобочитаемости. И я знаю, #!/bin/bash
не всегда работает на каждой системе.
Читатели ответов на этот вопрос остерегайтесь: есть несколько различных программ, называемых 'mail', например,' реликвия-mailx' и 'BSD-mailx' на Debian Jessie , Если команда «mail» из ответа здесь не работает для вас, вероятно, вы используете неправильную «почту». Обратитесь к менеджеру пакетов вашего дистрибутива, чтобы установить правильный пакет, и используйте конкретное имя этого двоичного файла (например, 'bsd-mailx' на Debian), чтобы решить эту проблему. Подробнее об этом здесь: http://heirloom.sourceforge.net/mailx_history.html –