Linux

使用 fetchmail 獲取電子郵件時,Procmail 似乎沒有被執行

  • October 14, 2016

我有以下問題:我最近有一台新的工作 PC(Debian 測試,代號:stretch),必須重新安裝fetchmail才能procmail閱讀我的電子郵件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帶有傳入電子郵件的 a 在其較長的輸出中具有以下字元串:

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

我的結論是它procmail無法正常工作或根本無法正常工作。電子郵件仍然會到達,但都在那個預設郵箱/文件夾中,並且在它們傳遞時我無法移動它們(當我在裡面時,mutt我可以將它們保存到我擁有或可能定義的所有郵箱中)。

如果有人可以幫助我解決這個問題,我將不勝感激!

親切的問候。

LOCKFILE分配阻止 Procmail 做任何事情。

檢查 Procmail 的標準錯誤輸出procmail -m VERBOSE=yes .procmailrc </dev/null應該很容易發現它一直在等待鎖,並最終放棄。

另見http://www.iki.fi/era/procmail/mini-faq.html#locking>和<http://www.iki.fi/era/mail/procmail-debug.html

通常,您也不需要ORGMAIL出於任何原因觸摸。

Procmail 不需要/etc/procmailrc文件;如果確實存在,它將在 your 之前呼叫.procmailrc,但在您的場景中它應該不是必需的或特別有用。

通常,您.procmailrc應該存在於您的主目錄中,只有您自己具有讀取(並且,出於實際維護原因,寫入)訪問權限。根據fetchmail執行方式procmail,可能存在您的問題不清楚的情況 - 例如,如果fetchmail既不是執行方式root也不是您自己,它可能無權切換到您的 UID。

對於故障排除,也許把你的常客.procmailrc移到一邊,嘗試一個非常簡單的通用的,它可能只是簡單地分配LOGFILE=/tmp/procmail-testing.log和退出,每個人都有讀取權限。如果你能讓它工作,也許LOG=whoami``你可以看到它執行的權限。

引用自:https://serverfault.com/questions/809130