使用 fetchmail 获取电子邮件时,Procmail 似乎未被执行

使用 fetchmail 获取电子邮件时,Procmail 似乎未被执行

我遇到了以下问题:我最近买了一台新的 PC(Debian 测试版,codenme:stretch),必须重新安装fetchmailprocmail才能使用阅读电子邮件mutt。现在,fetchmail运行良好,也mutt运行正常,只是我的邮件的后台邮箱似乎保持相同的默认邮箱,即/var/mail/user

在我的中.fetchmailrc我定义了mda应该执行的:

mda '/usr/bin/procmail -f %F -d %T';

我创建的内容.procmailrc如下所示:

# Please check if all the paths in PATH are reachable, remove the ones that
# are not.

SHELL=/bin/sh
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail  # Youd better make sure it exists
SPOOL=$HOME/Mail/mbox
DEFAULT=$MAILDIR/mbox
ORGMAIL=$MAILDIR/mbox
LOGFILE=$MAILDIR/log        
LOCKFILE=$HOME/.lockmail
VERBOSE= yes
LOGABSTRACT= all

rc在找遍了所有能找的地方,一次又一次地更改和检查文件和邮件文件夹的权限,最后尝试卸载所有内容并重新安装后,什么都没有改变:/var/mail/user即使我插入了一些传送条件,邮件仍然会被传送.procmailrc

最后我注意到没有/etc/procmailrc文件(我认为它应该存在),并且所有log应该存在和应该写入的文件都不存在。

fetchmail正在调用 procmail,因为$ fetchmail -vvv收到的电子邮件在其较长的输出中包含以下字符串:

fetchmail: about to deliver with: /usr/bin/procmail -f 'email@addres' -d 'user'

我的结论是,它procmail无法正常工作或根本无法正常工作。电子邮件仍然会到达,但全部位于默认邮箱/文件夹中,我无法在它们被发送时移动它们(当我进入时,mutt我可以将它们保存到我拥有或可能定义的所有邮箱中)。

如果有人能帮助我解决这个问题我将不胜感激!

亲切的问候。

答案1

LOCKFILE分配阻止 Procmail 执行任何操作。

检查 Procmail 在标准错误上的输出procmail -m VERBOSE=yes .procmailrc </dev/null应该很容易发现它永远在等待锁,并最终放弃。

也可以看看http://www.iki.fi/era/procmail/mini-faq.html#lockinghttp://www.iki.fi/era/mail/procmail-debug.html

一般来说,您也不需要ORGMAIL因任何原因去触摸。

Procmail 不需要/etc/procmailrc文件;如果它存在,它将在您的之前被调用.procmailrc,但它在您的场景中不是必要的或特别有用的。

通常情况下,您的.procmailrc应该存在于您的主目录中,只有您自己才具有读取(并且,出于实际维护原因,还有写入)权限。根据 的fetchmail运行方式procmail,可能存在您的问题中无法明确说明的情况 — — 例如,如果fetchmail既不是以 的身份运行,root也不是以您自己身份运行,则可能无权切换到您的 UID。

为了进行故障排除,也许可以将常规方法移到.procmailrc一边,然后尝试一个非常简单、通用的方法,也许只是分配LOGFILE=/tmp/procmail-testing.log并退出,并为每个人提供读取权限。如果您可以让它工作,也许LOG=`whoami`您可​​以看到它以什么权限运行。

相关内容