como enviar vários anexos em um e-mail usando o uuencode

0

Eu tenho um problema. Eu preciso escrever um script que vai encontrar qualquer arquivo gerado 1 dia atrás E, em seguida, enviá-lo para um determinado endereço de correio de terça a domingo às 2 da manhã?

O problema é que o meu script encontra os 3 arquivos corretos, mas envia três e-mails diferentes com um único anexo ou envia um e-mail sem nenhum anexo. Como posso editá-lo para enviar vários anexos em um e-mail? Parece que todo arquivo precisa de um 'uuencode' com ele, então tentei concatenar "uuencode" para o "filename" e adicione essa variável ao comando de ssmpt. Nenhuma das duas versões está realmente funcionando.

Como posso escrever a experiência regular para que todos os arquivos encontrados sejam enviados por e-mail usando um e-mail. Meu script atual apenas envia e-mails sem anexo ou 1 arquivo por e-mail.

Por favor ajude.

Aqui está o meu script:

Versão 1: envia um email sem anexo:

#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"

arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))


for i in "${arr[@]}"
do 
    value=" uuencode -e $i $(basename $i);"
    valueTotal=$valueTotal$value;
done

echo -e "to:[email protected]\nSubject:performance of teams on ${dt};"|(cat - && ${valueTotal};)|/usr/sbin/ssmtp [email protected]

Versão 2: envia 3 emails com anexo único em cada um:

#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"

arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))

Count=0
for i in "${arr[@]}"
do 
    Count=$((Count+1))
    echo -e "to:[email protected]\nSubject:performance of teams on ${dt}; mail    ${Count} of 3\n"|(cat - && uuencode $i;)|/usr/sbin/ssmtp to:[email protected]
done
    
por mithz 18.10.2016 / 21:30

1 resposta

1

uuencode é a ferramenta errada para o trabalho. (Foi a ferramenta certa há cerca de 25 anos, mas há muito tempo foi substituída pelo padrão MIME).

Na minha distribuição Debian, um script pode usar o comando mail diretamente. A página man para mail diz, entre outras coisas, " -um arquivo Anexe o arquivo fornecido à mensagem ". Aqui está um exemplo que envia três anexos codificados usando MIME.

echo 'Here is my email' |
    mail -s 'Test message' -a /etc/hosts -a /etc/group -a /etc/motd [email protected]

Eu não tive tempo de verificar esta próxima parte, mas parece que munpack pode ser a ferramenta para realizar a conversão inversa, ou seja, extrair anexos MIME de um e-mail de volta em arquivos.

    
por 18.10.2016 / 23:58

Tags