
簡単な自動化システムを構築しようとする試みは私にとって非常に複雑なことでした。スクリプトを使用して電子メールを使用してリモート操作を実行したいと思います。スクリプトの概要:
- 「Pattern1(番号)」というタイトルで、本文が空のメールを送信します。
- 最近50個のEメールヘッダーをお読みください。
- "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設定に移動してセキュリティ設定を無効にする必要があります。