使用电子邮件设置简单的自动化系统


1

对我来说,尝试建立一个简单的自动化系统非常困难。使用脚本,我想使用电子邮件执行远程任务。脚本概述:

  1. 发送带有标题为“ Pattern1(数字)”的空正文电子邮件
  2. 阅读最近的50个电子邮件标题。
  3. 查找与“ Pattern2(数字)”匹配的最新标题。
  4. 将该标头中的数字保存(回显)到文件中。
  5. 等5分钟
  6. 循环到1。

我正在尝试使用尽可能少的程序。目前,有Mutt用于发送和检索电子邮件。和grepmail(带有grepm脚本)用于搜索电子邮件。

我可以使用Mutt和grepmail吗?作为非系统管理员,我感到困惑。Mutt不适用于脚本编写。进行此设置的最简单方法是什么?

Answers:


1

只能用curl

发电子邮件

MSG="From: a@gmail.com
To: Receiver
Subject: Test"

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

要阅读邮件,首先必须知道INBOX中有多少封电子邮件。

EXISTS="$(curl --insecure \
--user "a@gmail.com: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 "a@gmail.com:password" \
   --url "imaps://imap.gmail.com:993/INBOX;UID=$i" | \
   grep "Subject: " | head -n1 )"

   echo "$SUBJECT"
done

注意:要像这样启用smtp / imap访问,您必须进入gmail设置以禁用安全设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.