간단한 자동화 시스템을 구축하려는 시도는 나에게 매우 복잡한 일이었습니다. 스크립트를 사용하여 이메일을 사용하여 원격 작업을 수행하고 싶습니다. 스크립트 개요:
- "Pattern1(번호)"라는 제목으로 본문이 비어 있는 이메일을 보냅니다.
- 최근 50개의 이메일 헤더를 읽어보세요.
- "Pattern2(Number)"와 일치하는 최신 헤더를 찾습니다.
- 이 헤더의 숫자를 파일에 저장(에코)합니다.
- 5분 정도 기다리세요
- 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 설정으로 이동하여 보안 설정을 비활성화해야 합니다.