Linux

如何在 cmdline 中執行 procmail 並提供 .eml 文件作為輸入?

  • March 29, 2020

在收到的電子郵件上執行我的外部 python 腳本時,Procmail 失敗。之後,我嘗試手動執行該腳本並提供與 procmail 相同的參數 - 它通過時沒有任何問題,所以我試圖弄清楚為什麼 procmail 與該腳本有問題。是否可以從 cmdline 執行 procmail 並使用電子郵件的原始數據提供保存的 .eml 文件的路徑?我應該配置其他東西嗎,也許權限是錯誤的 - 但我猜 procmail 是由與我對 python 腳本進行手動檢查的同一使用者執行的。

你可以測試一個腳本

procmail -m VERBOSE=yes recipe.rc <message.eml

當然,配方文件和/或範例消息的文件路徑可以是絕對的或相對的。隨著VERBOSE=yes您獲得詳細的日誌記錄(在標準錯誤上,如果您沒有LOGFILE在配方文件中指定不同的目的地);如果沒有配方觸發,-m請避免傳遞給。DEFAULT

如果配方觸發並且它有副作用,這些仍然存在,儘管您通常可以安排您的程式碼,以便在設置特定變數時將傳遞發生在一個單獨的位置,以便在不填充您的實時郵件文件夾的情況下促進調試帶有測試消息。

就其價值而言,它的.eml標準化程度並不高,儘管您可能指的是 RFC5322(née 822)格式,這正是 Procmail 所期望的。不過,有許多程序將.eml副檔名用於完全不同的格式。

有關進一步的調試提示,也許另見http://www.iki.fi/era/mail/procmail-debug.html

引用自:https://unix.stackexchange.com/questions/575522