通過使用自定義的SMTP服務器,運行在不經意間產生的安全漏洞或違反以某種方式SMTP協議的風險。有很多很棒的SMTP服務器(Postfix,exim,sendmail ......),這聽起來對我來說不是一個好的選擇。
我能想到解決這個問題的最簡單方法是使用Postfix來中繼入站和出站電子郵件。 可以將入站電子郵件配置爲傳送到應用程序,並且可以將出站電子郵件配置爲由Postfix直接傳遞或通過其他服務器傳遞。
這樣,您可以使用能夠解析RFC822兼容消息文件的應用程序來代替自定義SMTP服務器。這比完成同樣的事情要好,但是必須實施SMTP協議。
如果您需要接收大量的消息,這種方法可能無法很好地擴展 - 每條消息都會fork + exec一個新進程。如果這是一個需求,一個好的方法是讓自定義的SMTP服務器來完成這項工作,但讓Postfix轉發它的消息 - 然後您將從解析器前的Postfix架構中受益。
假設你遵循管道將消息發送到應用程序的方法,你只需要在後綴做的是
配置後綴的alias_maps
「參數來尋找這樣的地圖:
alias_maps = hash:/etc/aliases, hash:/etc/postfix/app-aliases
然後,配置在地圖上,以管的消息發送到每個地址轉換成一個應用程序:
test: "|/usr/local/bin/your-app"
像往常一樣,不要忘了$ postalias app-aliases
。
這將使發送到[email protected]
消息被輸送進/usr/local/bin/your-app
,其充當電子郵件網關到應用程序。
同時,通過直接從郵件傳輸代理入站隊列中獲取電子郵件,這個應用程序也應該做到這一點。我會檢查兩種選擇,看看哪個更好。 – Isidoro
看起來更像是一個掃描儀模塊而不是MDA。你可能會更好地服務於[procmail](http://www.procmail。org /)或[maildrop](http://www.courier-mta.org/maildrop/)。 –