答えは、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実装などによって提供されている場合を除く)。
かなりカバーできていると思います。幸運を :)