Configuração simples do sistema de automação usando o e-mail

1

Tentar configurar um sistema de automação simples provou ser extremamente complicado para mim. Usando scripts, quero usar o email para executar tarefas remotas. O esboço do script:

  1. Enviar um email de corpo vazio com o cabeçalho como "Padrão1 (número)"
  2. Leia os últimos 50 cabeçalhos de e-mail.
  3. Encontre o cabeçalho mais recente que corresponde a "Padrão2 (número)".
  4. Salve (eco) o número desse cabeçalho em um arquivo.
  5. Espere 5 minutos
  6. Loop para 1.

Estou tentando usar o menor número de programas possível. Atualmente, tem Mutt para envio e recuperação de e-mail. E o grepmail (com script grepm) para pesquisar e-mails.

Estou longe de usar o Mutt e o grepmail? Estou confuso como um não-administrador de sistema. Mutt não é ótimo para scripts. Qual é a maneira mais simples de configurar isso?

    
por Rucent88 16.02.2018 / 22:38

1 resposta

1

Tudo pode ser feito com apenas curl .

Enviar e-mail

MSG="From: [email protected]
To: Receiver
Subject: Test"

echo "$MSG" | curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
--mail-from "[email protected]" --mail-rcpt "[email protected]" \
--upload-file - --user "[email protected]:password" --insecure

Para ler e-mails, primeiro você precisa saber quantos e-mails estão na caixa de entrada.

EXISTS="$(curl --insecure \
--user "[email protected]:password" \
--url 'imaps://imap.gmail.com:993/' \
--request "EXAMINE INBOX" | grep "EXISTS" | grep -oP '\d*' | head -n1 )"

echo "$EXISTS"

O email mais recente tem o maior número. Imprima o assunto dos últimos cinco e-mails, o mais recente primeiro.

for ((i=$EXISTS;i!=$EXISTS-5;i--)); do
   SUBJECT="$(curl --insecure -u "[email protected]:password" \
   --url "imaps://imap.gmail.com:993/INBOX;UID=$i" | \
   grep "Subject: " | head -n1 )"

   echo "$SUBJECT"
done

Aviso: para ativar o acesso smtp / imap como este, você deve entrar nas configurações do gmail para desativar as configurações seguras.

    
por 26.02.2018 / 07:00

Tags