Este tópico muito antigo mostra como usar uuencode e ssmtp para enviar um e-mail com anexo de um script bash.
Criei este script de teste para depurar:
#!/bin/bash
set -x
NOW=$( date '+%F' ) #( date '+%F_%H-%M-%S' )
LOGPATH=/home/pi/logs
LOGFILE=test-log-$NOW.txt
FULL_LOG=$LOGPATH'/'$LOGFILE
echo "This is a test of the log email send $LOGPATH $LOGFILE $FULL_LOG " > $FULL_LOG
echo -e "To: [email protected]\nSubject: test log send\n\n" | (cat - && /usr/bin/uuencode $FULL_LOG) | /usr/sbin/ssmtp -t
A saída se parece com isso:
+ echo 'This is a test of the log email send /home/pi/logs test-log-2025-02-22.txt /home/pi/logs/test-log-2025-02-22.txt '
+ echo -e 'To: [email protected]\nSubject: test log send\n\n'
+ cat -
+ /usr/sbin/ssmtp -t
+ /usr/bin/uuencode /home/pi/logs/test-log-2025-02-22.txt
Nenhum erro ocorre, e um e-mail é entregue com o assunto para o endereço correto. O problema é que o anexo do e-mail é entregue como um arquivo chamado
homepilogstest-log-2025-02-222.txt
O anexo é um arquivo de comprimento zero. O arquivo é criado corretamente no Pi e contém o conteúdo esperado:
$ ls -l logs/test-log-2025-02-22.txt
-rw-r--r-- 1 pi pi 116 Feb 22 12:19 logs/test-log-2025-02-22.txt
$ cat logs/test-log-2025-02-22.txt
This is a test of the log email send /home/pi/logs test-log-2025-02-22.txt /home/pi/logs/test-log-2025-02-22.txt
O que estou perdendo?