yo estaba luchando con un problema similar (con el correo) en uno de los ganchos post_receive de mi git y finalmente me enteré, que sendmail realmente funciona mejor para ese tipo de cosas, especialmente si conoce un poco cómo se construyen los correos electrónicos (y parece que usted sabe). Sé que esta respuesta llega muy tarde, pero tal vez también sea útil para otros. Hice uso del operador heredoc y el uso de la función, que expande las variables, por lo que también puede ejecutar scripts en línea. Sólo mira esto (escritura del golpe):
#!/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
Nota de acentos abiertos en la parte CORREO para generar alguna salida y recordar, que <<-
tiras operador sólo Tabs (no espacios) desde el principio de las líneas, por lo que en ese caso copiar y pegar no funcionará (debe reemplazar la sangría con pestañas correctas). O use el operador <<
y no haga ninguna sangría en absoluto. Espero que esto ayude a alguien. Por supuesto, puede usar los trazos atrás fuera de la parte CORREO y guardar la salida en alguna variable, que luego puede usar en la parte CORREO, cuestión de gusto y legibilidad. Y sé que #!/bin/bash
no siempre funciona en todos los sistemas.
Los lectores de respuestas a esta pregunta tenga cuidado: hay varios programas diferentes llamados 'mail', por ejemplo' herencia-mailx' y 'BSD-mailx' en Debian Jessie . Si un comando 'mail' de una respuesta aquí no funciona para usted, probablemente esté utilizando el' correo' incorrecto. Consulte el administrador de paquetes de su distribución para instalar el paquete correcto y use el nombre específico de ese binario (por ejemplo, 'bsd-mailx' en Debian) para resolver ese problema. Más detalles sobre esto aquí: http://heirloom.sourceforge.net/mailx_history.html –