ero alle prese con problemi simili (con la posta) in uno dei ganci post_receive di mio Git e alla fine ho scoperto, che sendmail in realtà funziona meglio per quel tipo di cose, soprattutto se conosci un po 'di come sono costruite le e-mail (e sembra che tu lo sappia). So che questa risposta arriva molto tardi, ma forse sarà di qualche utilità anche per gli altri. Ho fatto uso dell'operatore heredoc e uso della funzione, che espande le variabili, quindi può anche eseguire script inline. Basta controllare questo fuori (script bash):
#!/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 del backticks nella parte MAIL per generare un output e ricordare, che <<-
strisce operatore solo schede (non spazi) dall'inizio di linee, quindi in questo caso il copia-incolla non funzionerà (devi sostituire il rientro con le schede appropriate). Oppure utilizzare l'operatore <<
e non creare alcun rientro. Spero che questo aiuti qualcuno. Ovviamente è possibile utilizzare i backtick all'esterno della parte MAIL e salvare l'output in una variabile, che è possibile utilizzare successivamente nella parte MAIL: questione di gusto e leggibilità. E lo so, #!/bin/bash
non funziona sempre su tutti i sistemi.
I lettori di risposte a questa domanda attenzione: ci sono diversi programmi diversi chiamati 'mail', ad esempio' cimelio-mailx' e 'BSD-mailx' su Debian Jessie . Se un comando 'mail' da una risposta qui non funziona per te, probabilmente stai usando' mail' sbagliato. Fai riferimento al gestore di pacchetti della tua distribuzione per installare il pacchetto corretto e usa il nome specifico di quel file binario (ad esempio 'bsd-mailx' su Debian) per risolvere quel problema. Maggiori dettagli su questo qui: http://heirloom.sourceforge.net/mailx_history.html –