首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PROCMAIL::如何在将邮件发送到MBox之后执行perl脚本

PROCMAIL::如何在将邮件发送到MBox之后执行perl脚本
EN

Stack Overflow用户
提问于 2013-08-26 15:43:10
回答 2查看 1.5K关注 0票数 0

我在安装红帽。我遇到的是:

  1. perl脚本使用Modules查看邮箱,查找消息#0或满意的邮件,但它还没有出现。
  2. 如果我使用C标志复制邮件,我仍然会得到相同的响应,即它没有将其传递到邮箱。

因此,我需要知道的是一个procmail食谱,它把它传送到邮箱,然后启动脚本来处理交付的电子邮件。

谢谢罗伯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-26 17:01:28

正如我在上面的评论中指出的那样,这似乎是一种不太好的方法。但是,你应该能够使用这样的东西:

代码语言:javascript
复制
:0c:
* Whatever condition
/path/to/mbox

  :0ahi
  | /path/to/perl/script

或等量

代码语言:javascript
复制
: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文件的问题。

票数 4
EN

Stack Overflow用户

发布于 2013-08-26 18:06:44

所以我想出了一个简单但可能不是最好的答案。由于我可以控制电子邮件什么时候进来,所以我决定删除这个过程的锁,它运行得很好。

因此,没有第二个冒号和"c“选项,它现在运行脚本,可以在邮箱中看到电子邮件。

Whew...what在一个简单的解决方案上浪费了pain...two的时间。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18447924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档