我想通过 POP3 连接到我们的邮件服务器,在主题中查找特定的密码短语,如果找到则运行脚本。
除了笨拙地编写 Telnet 脚本之外,如何使用 BASH 实现此目的?
谢谢!
答案1
从命令行查询 POP3 服务器的典型工具是fetchmail
您可以指示将原始邮件保留在邮件服务器上(“保留”选项或nokeep
下载邮件后清空邮箱),然后procmail
是典型的邮件过滤器,它可以用于触发您的脚本。
示例.fetchmailrc
如下:
poll pop.example.com with proto pop3:
user "username.on.example" there has password "S3cr3t"
is herman here and wants ssl nokeep
mda "/usr/bin/procmail -t /home/herman/.procmailrc.pop.example.com"
.procmailrc.pop.example.com 文件包含特定主题上的匹配规则:行以触发脚本。完整的消息将作为 STDIN 传递到脚本,因为通常脚本实际上会对电子邮件执行某些操作。
:0
^Subject: passphrase
| /home/herman/bin/script
答案2
您可以使用fetchmail
和procmail
程序。
fetchmail
可以
* 下载新的 POP3 邮件,无论是否在 POP3 服务器上删除它们
* 将下载的邮件传递到另一个程序 (procmail) 标准输入(请参阅--mda
选项)
procmail
可以
*为匹配特定条件的消息执行自定义程序/脚本
,例如主题:匹配正则表达式