Shell-Script
通過腳本使用自定義過濾器拒絕入站電子郵件
背景和要求
我找到了許多與該主題相關的參考文件和問答文章,但我無法找出設計的關鍵領域。
我想根據自定義分析算法拒絕入站電子郵件 - 只是我有一個執行分析的 python 腳本,我目前正在通過呼叫它作為來自 Gnome Evolution 的郵件過濾器進行測試。這一切似乎或多或少地按預期工作。似乎是 python 中的返回程式碼與 Evolutions 郵件過濾系統的解釋的一些細微差別,但在其他方面是可操作的。
在這個階段不依賴於技術或系統以外的其他技術或系統,它必須是開源的。理想情況下,它應該在 Debian(或 Ubuntu)上執行,因此 Postfix 似乎是最合適的。
問題區域
我一直在研究諸如 Postfix 之類的網關等,以便設計一個在更自主級別上工作的集成 - 並避免浪費時間過濾收件箱中的電子郵件。我可以看到隊列過濾器之前的輕量級過濾器(例如這裡),我可以看到如何從這些鉤子中呼叫腳本,例如這裡,但不能從腳本中獲取任何返回碼。
我在文件中似乎找不到的是如何將腳本中的結果程式碼/返回程式碼應用到 Postfix,以便它確定是否允許或拒絕消息。
請注意,該解決方案依賴於能夠拒絕電子郵件,而不是丟棄它(不幸的是,我無法進入這裡)。我想到了一個 cron 作業,它檢查從添加到隊列的電子郵件中收集的整理數據項列表,並自動將更多過濾器附加到 Postfix 配置。這只解決了部分問題,意味著即使沒有新電子郵件,伺服器上也會執行一些東西。
TL; DR所以我的問題是:
- 如何從 MTA 呼叫腳本並獲取腳本/呼叫結果?例如呼叫
scan.py
並得到一個0
或1
返回- 我應該在文件中參考 Postfix(或其他類似的開源系統)中的什麼機制,然後將此結果綁定到一個操作?
這可以通過將腳本設置為 milter 來實現 - 請參閱 MILTER_README。不過,這可能是一項不平凡的任務。也許值得看看其他人是否已經為您的目的實現了足夠好的東西,例如這裡。