答えは、Lamson が SMTP AUTH (電子メールがサーバーによって受け入れられる前にユーザーの認証を要求する SMTP 拡張機能) をサポートしていないということですsmtpd。これは、それ自体が SMTP AUTH をサポートしていない Python 標準ライブラリ モジュールの上に構築されているためです。 .
lamson.server.SMTPReceiver(これは、着信 SMTP サーバーを Lamson に実装し、 から継承するクラスですsmptd.SMTPServer) およびsmtpd.SMTPChannel(これは、着信 SMTP メッセージを に渡す前に最初に処理するクラスです)のソースを調べることで、これを自分で確認できますsmtpd.SMTPServer.process_message()。
ただし、すべてが失われるわけではありません。このプロジェクトsmptdは、 SMTP AUTH と SSL (両方の要件をカバーする) のサポートを提供することを目的とした標準ライブラリのスピンオフです。
SMTPServerしたがって、上記のプロジェクトから派生し、 Lamson の の動作をエミュレートする新しいクラスを作成できますSTMPReceiver。次に、ラムソンのconfig/boot.pyで、次の行を変更する必要があります。
from lamson.server import Relay, SMTPReceiver
に:
from lamson.server import Relay
from my_module import my_class as SMTPReceiver
置き換えmy_moduleてmy_class、必要に応じて、新しく作成したクラスをロードします。
これにより、Lamson が電子メール メッセージを受信した時点でユーザー認証が実行され、その後の処理が行われることが保証されます。もちろん、SSL経由でのみ接続が有効になっていることを確認し、前述のようにLDAP部分を実装する必要があります(SASL実装などによって提供されている場合を除く)。
かなりカバーできていると思います。幸運を :)