使用 BASH 查询远程 POP3 邮件服务器

使用 BASH 查询远程 POP3 邮件服务器

我想通过 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

您可以使用fetchmailprocmail程序。

fetchmail可以
* 下载新的 POP3 邮件,无论是否在 POP3 服务器上删除它们
* 将下载的邮件传递到另一个程序 (procmail) 标准输入(请参阅--mda选项)

procmail可以
*为匹配特定条件的消息执行自定义程序/脚本
,例如主题:匹配正则表达式

相关内容