Procmail麻烦

时间:2008-11-23 20:27:54

标签: procmail

我一直在努力解决这个问题......

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

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来查看其路径。

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

如何让日志生效? general.rc错了吗?

5 个答案:

答案 0 :(得分:3)

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

执行后者

答案 1 :(得分:2)

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

  1. 退出所有邮件客户端
  2. 移走当前的收件箱(mv / var / spool / mail / username /tmp/mail.username)
  3. formail +1 -ds procmail< /tmp/mail.username

答案 2 :(得分: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. 检查日志文件

答案 3 :(得分: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文件的内容。您应该编辑您的问题以显示这两个文件的当前内容。

答案 4 :(得分:1)

如果您只想在磁盘上使用其中一个主题行查找邮件,我建议您在收件箱中添加fgrep