我有一个GMail帐户,该帐户只能接收包含特定主题的电子邮件。 当找到此电子邮件的未读版本时,我需要一些linux命令来触发。 这些命令只是应用程序调用,因此我可以在运行时记录我的桌面。
xrandr --size 1360x768
timeout 2h recordmydesktop
xrandr --size 1366x768
我已经在gmail上为电子邮件本身创建了一个过滤器,但现在我不知道接下来要做什么。有人告诉我设置fetchmail,它会在我设置的文件夹中获取未读的电子邮件。(并将新获取的电子邮件标记为在gmail上读取,这样就不会一遍又一遍地读取同一邮件)。这是我得到的脚本,但我不确定脚本是否能满足我的需要。
poll imap.gmail.com protocol IMAP
user "l**********@gmail.com"
password '*****'
folder 'Pic*******'
fetchmail -c
keep
ssl
接下来是我被告知设置一个procmail脚本来触发我的linux命令,只要fetchmail说它发现了一个未读的电子邮件版本。但我不确定该怎么做。我还需要设置cronjob以便每隔几分钟触发一次该脚本。
答案 0 :(得分:0)
fetchmail
擅长下载邮件。 procmail
善于过滤消息并根据收到的邮件执行任意linux命令。
要将fetchmail
设置为每10分钟作为一个cronjob运行,并将收到的邮件传递给procmail
,请运行crontab -e
并添加以下行:
*/10 * * * * /usr/bin/fetchmail -N -d0 -f $HOME/.fetchmailrc -m "/usr/bin/procmail $HOME/.procmailrc"
您需要创建一个~/.procmailrc
文件来进行过滤和执行。
您还没有说出要运行的命令。例如,仅为了向您提供提示,~/.procmailrc
文件中的以下节选择来自somebody@example.com
的主题标题为New File
的邮件。然后消息的主体被uudecoded,然后uudecoder的输出被解压缩:
:0 w
* ^From:.*somebody@example.com
* ^Subject: New File
| uudecode -o /dev/stdout | tar -xzC /var/tmp/
答案 1 :(得分:0)
运行X命令的要求在某种程度上使问题复杂化。 Cron并不适合 - 即使您的计算机仅在您登录时打开,通用X体系结构基于权限分离 - 在当前X会话中运行的命令可以访问GUI,而其他命令则不能。 / p>
从你的X会话中运行Fetchmail和Procmail也有点尴尬,但如果你有一个专门的电子邮件帐户来完成这项任务,我不认为你不小心偶尔会丢失一封电子邮件。
因此,我建议使用.xsession
或类似的简单后台脚本而不是Cron作业。
#!/bin/sh
while true; do
fetchmail -N -d0 -f $HOME/.fetchmailrc -m "/usr/bin/procmail $HOME/.procmailrc"
sleep 600
done
Procmail配方看起来像
:0
* ^Subject: whatever
| xrandr --size 1360x768 ;\
timeout 2h recordmydesktop; \
xrandr --size 1366x768