我正在进行Red Hat安装。 我遇到的是:
perl脚本使用模块查看邮箱以查找邮件#0或已发送的邮件,但它还没有。
如果我使用C标志对邮件进行复制,我仍会得到相同的响应,但不会将其传送到邮箱。
所以我需要知道的是一个procmail配方,它将它传递到邮箱然后激活脚本来处理传递的电子邮件。
由于 罗布
答案 0 :(得分:3)
正如我在上面的评论中所指出的,这似乎是一种不好的方法。但是你 应该可以使用类似的东西:
:0c:
* Whatever condition
/path/to/mbox
:0ahi
| /path/to/perl/script
或等效
:0
* whatever condition
{
:0c:
/path/to/mbox
:0ahi
| /path/to/perl/script
}
第一个配方将导致邮件传递到mbox文件,但是
因为使用了c
标志,处理将在该配方之后继续。该
以下配方中的a
标志指定仅在使用时才使用它
使用前面的配方并成功完成。
该配方上的h
标志指定只应发送标头
perl脚本。这可能不会影响它,因为你说它是
从mbox文件而不是从管道获取消息;但确实如此
减少需要通过管道发送的数据量。
i
标志指定procmail如果无法发送则不应该抱怨
脚本的一切。由于脚本可能不是从它读取
标准输入,管道缓冲区可能会填满
procmail收到写错误;虽然这种情况不太可能发生
仅发送消息的标题时。
如果你真的需要使用Mail :: Box系列模块来处理
消息,而不是可以解析标准消息的消息
输入,我建议你至少使用Maildir邮箱而不是mbox。
mbox格式没有真正的规范,有很多
对它应该如何运作的不同解释。差异往往是
微妙的,所以在收到消息之前,事情似乎正常
这恰好触发了不同实现之间的不兼容性
(例如,以From
开头的行)。那还没有进入
锁定mbox文件的问题。
答案 1 :(得分:-1)
所以我能够想出简单但却可能不是最好的答案。由于我可以控制电子邮件何时进入,因此我决定删除该进程的锁定并且工作正常。
因此,如果没有第二个冒号和“c”选项,它现在可以运行脚本并可以看到邮箱中的电子邮件。
哇......多么痛苦......两天浪费在一个简单的解决方案上。