이메일을 활용한 간단한 자동화 시스템 구축

이메일을 활용한 간단한 자동화 시스템 구축

간단한 자동화 시스템을 구축하려는 시도는 나에게 매우 복잡한 일이었습니다. 스크립트를 사용하여 이메일을 사용하여 원격 작업을 수행하고 싶습니다. 스크립트 개요:

  1. "Pattern1(번호)"라는 제목으로 본문이 비어 있는 이메일을 보냅니다.
  2. 최근 50개의 이메일 헤더를 읽어보세요.
  3. "Pattern2(Number)"와 일치하는 최신 헤더를 찾습니다.
  4. 이 헤더의 숫자를 파일에 저장(에코)합니다.
  5. 5분 정도 기다리세요
  6. 1로 반복합니다.

가능한 한 적은 수의 프로그램을 사용하려고 노력하고 있습니다. 현재 Mutt는 이메일을 보내고 검색하는 데 사용됩니다. 이메일 검색을 위한 grepmail(grep 스크립트 사용)

Mutt와 grepmail을 사용하는 데 더 이상 가까워지지 않습니까? 시스템 관리자가 아닌 저는 혼란스럽습니다. Mutt는 스크립팅에 적합하지 않습니다. 이것을 설정하는 가장 쉬운 방법은 무엇입니까?

답변1

이 모든 작업은 curl.

이메일을 보내

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

메일을 읽으려면 먼저 받은 편지함에 얼마나 많은 이메일이 있는지 알아야 합니다.

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"

최신 이메일의 번호가 가장 높습니다. 최근 5개 이메일의 제목을 최신 항목부터 인쇄합니다.

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

참고: 이러한 smtp/imap 액세스를 활성화하려면 Gmail 설정으로 이동하여 보안 설정을 비활성화해야 합니다.

관련 정보