E-mail usando o shell script usando o endereço de e-mail do arquivo simples externo

2

Estou usando o script alexkowalski de E-mail usando o script de shell

MAILADDR=([email protected], [email protected], [email protected])
for i in "${MAILADDR[@]}"
    do
         echo "Mail test..." | mail -s "Mail test subject..." $i
    done

A minha pergunta é como ler MAILADDR array a partir de um arquivo plano externo?

E como inserir um arquivo simples externo substituindo o corpo do email como

echo"/home/user/information-for-any-user.txt"  | mail -s "Mail test subject..." $i ??
    
por instituto sinapsis 30.12.2014 / 00:19

3 respostas

3

Se o "arquivo plano externo" do qual os endereços de e-mail foram obtidos não parecer muito engraçado (está bem formatado), você pode usar algo assim:

mail -s "My subject" $(cat /this/is/the/external/flat/file.txt) < /home/user/information-for-any-user.txt
    
por 30.12.2014 / 00:28
3

Você pode fornecer vários endereços no comando mail .

  1. suponha que não haja caracteres glob no arquivo simples e que os endereços de e-mail sejam separados por qualquer espaço em branco:

    echo "Mail test..." | mail -s "Mail test subject..." $(< address.file)
    
  2. leia a lista separada por novas linhas de endereços em uma matriz bash

    mapfile -t addr < address.file
    echo "Mail test..." | mail -s "Mail test subject..." "${addr[@]}"
    
por 30.12.2014 / 03:26
0

Muito obrigado, combinar as duas respostas fez o trabalho.

mapfile -t addr < / home / user / address-file # (um endereço de email por linha)

echo "$ (cat < / home / user / informações-para-qualquer usuário)" | mail -s "Meu assunto" "$ {addr [@]}"

Felicidades

    
por 30.12.2014 / 15:43