0

几周以来我一直在努力解决这个问题......

我的目标是在我的收件箱中搜索以下消息:

Hello
Hi
Hey

我使用三个文件为我执行此操作。第一个,我的 $HOME 中的 .forward 文件

"|IFS=' '&&exec usr/bin/procmail||exit 75 #username"

这两个在我的 ~/.procmail 目录中

.procmailrc

VERBOSE=off
MAILDIR=$HOME/Mail
PMDIR=$HOME/.procmail
DEFAULT=/var/spool/mail/username
LOGFILE=$PMDIR/log
INCLUDERC=$PMDIR/general.rc
#end of .procmailrc

最后是规则文件:general.rc

:0
* ^From:.*sumone@sumaddy.com
* ^Subject:.*hello
$HOME/Mail/Hello

应该发生的是,所有这三个文件共同复制和移动主题中包含 hello 模式的邮件。为了安全起见,它还会寻找某个人的地址。然后,当这些模式匹配时,它将坚持找到的内容并创建指定的路径;如果它还不存在。

但它没有这样做。我在emacs、vi、..中编辑完这些文件然后保存后,它会自动工作吗?还是我需要编译它?

如果我这样做,.procmailrc 可能需要(如果不是全部)'Shell=/bin/sh'

不是我没试过...


不,我开发不佳的设计是处理传入的邮件..

我已经通过向自己发送电子邮件对其进行了测试。

我认为,我的 General.RC 文件不是编码写入的。因为,在我给自己发送电子邮件后,它应该直接复制并将其移动到指定的目录。


难怪我犯了这些错误,我已经编辑了这三个文件一百万次。

我的 LOG 文件中没有显示任何内容...

我已经修复了其他所有问题,并且我知道我的 /usr/bin/procmail 存在,因为我使用 whereis 来查看它的路径。

但我的测试仍然失败。我不断给自己发送电子邮件并检查我的邮件文件夹,看看我的“你好”文件中的字节是否增加了..

我怎样才能让日志工作?general.rc 错了吗?

4

5 回答 5

3

Procmail 会在邮件进入时处理它,而不是当它只是放在您的邮箱中时。如果您想处理已经在您的邮箱中的邮件,您必须再次通过 procmail 传递它,或者通过“退回”给自己,或者通过 procmail 管道传递。在像 mutt 这样的命令行电子邮件客户端中,您可以使用 'b' 命令执行前者,后者通过键入|procmail

于 2008-11-23T20:59:09.187 回答
2

如果您希望处理已有的电子邮件,您需要:

  1. 退出任何邮件客户端
  2. 移开您当前的收件箱 (mv /var/spool/mail/username /tmp/mail.username )
  3. formail +1 -ds procmail < /tmp/mail.username
于 2008-11-23T21:14:24.100 回答
2
  1. 您的 ~.forward 文件在 usr 之前缺少一个“/”。另外,您可以像这样保持简短;

    "| **/**usr/bin/procmail"

  2. 将您的 .procmailrc 放在您的 HOME 目录下
  3. 设置 MAILDIR 后,在 general.rc 中只写“Hello”作为邮箱名称。同样在配方开头使用“:0:”来启用锁定,所有交付都必须锁定邮箱文件!
  4. 确保您在服务器上的 /usr/bin/procmail 中安装了 procmail。
  5. 确保您的 MAILDIR 中存在“Hello”文件。
  6. 检查日志文件
于 2008-11-24T01:03:20.427 回答
1

我认为在进行任何其他调试之前,您主要关心的是验证 procmail 是否正在您传入的电子邮件消息上运行。

我的建议是让你的 .procmailrc 文件看起来像这样(没有别的)

VERBOSE=on
LOGFILE=/tmp/procmail.log

:0 fhbw
| sed "s/^Subject:/& --procmail working--/"

然后给自己发一封电子邮件。

您应该在 /tmp/procmail.log 中获得一个日志文件,并且您的电子邮件应该到达您的邮箱,并且主题行已修改为包含“--procmail working--”。

如果这不起作用,则不会调用 procmail,您应该编辑问题以显示 .forward 文件的当前内容。

如果可行,那么问题出在 .procmailrc 或 general.rc 文件的内容上。您应该编辑您的问题以显示这两个文件的当前内容。

于 2008-12-02T01:12:56.833 回答
1

如果您只想在磁盘上查找带有这些主题行之一的邮件,我建议fgrep您在收件箱中查找。

于 2011-09-09T07:51:35.890 回答