2008-11-23 280 views
0

我一直在試圖解決這個數週...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:.*[email protected] 
* ^Subject:.*hello 
$HOME/Mail/Hello 

應該發生的事情是,所有這三個文件一起工作,複製和移動包含hello模式的郵件。爲了安全起見,它還會尋找某個人的地址。然後,當這些模式匹配時,它將堅持它發現並創建指定的路徑;如果它不存在。

但它沒有這樣做。 當我完成在emacs中編輯這些文件後,vi,然後保存它,它會自動工作嗎?還是我需要編譯它?

如果我這樣做,則.procmailrc文件可能需要(如果不是全部) '的Shell =/bin/sh的'

不,我沒有嘗試...


無,我欠發達的設計是處理傳入的郵件..

我測試過了,通過發送電子郵件給我自己。

我想,是我的General.RC文件沒有編碼寫入。因爲在我給自己發送一封電子郵件之後,它應該複製並將其移動到指定的目錄。


毫無疑問,我犯了這些錯誤,我編輯了所有這三個文件的時間。

沒有顯示在我的日誌文件...

我固定的一切,我知道我的存在,在/ usr /斌/ procmail的,因爲我用whereis看到它的路徑。

但我的測試仍然失敗。我不斷髮送自己的電子郵件和檢查我的郵件文件夾,看看我的「你好」文件中的字節是否增加了。

我怎樣才能讓日誌工作? 是general.rc錯了嗎?

+0

在'〜/ .forward`中,在`usr/bin/procmail`:`/ usr ...`的開頭添加一個`/`。 – 2015-05-04 06:34:04

回答

3

Procmail處理郵件進來,而不是當它坐在你的郵箱。如果您想處理郵箱中已有的郵件,則必須通過procmail再次傳遞它,方法是將其「反彈」給自己,或者通過procmail將其傳遞。在命令行中的電子郵件客戶端像狗,如果你想處理電子郵件,你已經擁有了你會做前者用「B」命令,後者通過鍵入|procmail

2

,你將需要:

  1. 退出任何郵件客戶端
  2. 搬走你目前的收件箱(MV在/ var/spool/mail中/用戶名/tmp/mail.username)
  3. FORMAIL +1 -ds procmail的< /tmp/mail.username
+1

這將重新傳送您已收到的郵件。這可能根本不是你想要的。 – tripleee 2011-09-09 07:48:10

2
  1. 您的〜.forward文件在usr之前缺少'/'。另外,你可以像這樣保持簡短;

    「| **/** USR /斌/ procmail的」

  2. 把你的.procmailrc文件HOME目錄
  3. 下設置您的MAILDIR後,只寫 「你好」 作爲general.rc郵箱名。也可以在配方開頭使用「:0:」啓用鎖定,所有交付都必須鎖定郵箱文件!
  4. 確保您在服務器上的/ usr/bin/procmail上安裝了procmail。
  5. 確保您的MAILDIR中存在「Hello」文件。
  6. 檢查日誌文件
+0

實際上`.forward`文件很好,除了`usr`之前缺少的斜線。這就是你應該如何爲Sendmail編寫`.forward`文件的原因。即使您的MTA不是Sendmail,也應該可以正常工作。 – tripleee 2011-09-09 07:49:39

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文件的內容上。您應該編輯您的問題以顯示這兩個文件的當前內容。

1

如果您只想在磁盤上找到其中一條主題行的郵件,我會在您的收件箱中推薦fgrep