簡體   English   中英

procmail - 使用 {} 不會傳送到 mbox

[英]procmail - using {} won't deliver to mbox

我正在嘗試使用 procmail 將一些舊的 email 整理到我的雷鳥 mbox 文件中,但是在使用大括號時我似乎無法將其歸檔到 mbox 文件中。 使用和不使用大括號進行下面的簡單測試會提供不同的結果 - 我錯過了什么,請:

SHELL=/bin/sh
# --- OPTIONAL, USED FOR DEBUGGING (comment out)
VERBOSE=yes
LOGABSTRACT=all
LOGFILE="procmail.log"
MAILDIR=/home/jake/windows/Thunderbird/Mail/Local\ Folders
DEFAULT=/home/jake/done/

# goes into MAILDIR/processed
:0
processed

# goes into DEFAULT/msg.gAmAAAAA4F/etc.
:0
{
processed
}

您的第二個配方基本上是一個語法錯誤,盡管 Procmal 解析器實際上將它解析為一個表達式,但它的含義與您的預期完全不同。 這是你實際寫的,完整的。

:0
{
  processed=''
}

因此,Procmail 進入大括號,執行分配,退出大括號,並在到達配方文件末尾時傳遞給$DEFAULT

要實際交付到文件中,您需要一個完整的配方,例如

:0
{
    :0
    processed
}

...但顯然帶有大括號的外部配方在這里完全是多余的。

一個符號本身被解析為一個空變量賦值,它清除了由該符號命名的變量這一事實不明顯並且不僅對初學者來說非常混亂,所以不要因為你無法弄清楚這一點而感到特別糟糕。

使用VERBOSE=yes ,您實際上應該會發現日志文件准確地顯示了這個事件鏈。 您的日志文件最終會出現在您的MAILDIR中,所以也許您沒有找到它......?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM