2012-12-04 3 views
4

나는 Lamson에게 메일을 보내기 전에 자신을 인증하는 사용자에 대해서는 아무 것도 찾을 수 없습니다. 내가 발견 한 유일한 SSL/TLS 언급은 Lamson이 메시지 처리를 마치면 실행되는 것으로 이해하는 Relay 클래스에 있습니다. 나는 Lamson이 을 처리하기 전에 전에 LDAP 자격 증명을 확인하길 원하지만 암호가 암호화되지 않은 네트워크를 통해 전송되는 것을 원하지 않습니다. 내가 찾지 못한 일종의 인증 처리기가 있으면 LDAP 부분을 처리 할 수 ​​있습니다.Lamson을 TLS/SSL로 실행하고 사용자를 인증 할 수 있습니까?

아직 코드를 작성하지 않았으며 지금은 문서를 읽으면서 옵션을 탐색합니다.

답변

6

대답은 Lamson이 Python 표준 라이브러리 smtpd 모듈 위에 빌드되어 있기 때문에 Lamson이 SMTP AUTH (사용자가 전자 메일을 서버에서 받기 전에 인증해야하는 SMTP 확장)를 지원하지 않는다는 것입니다. SMTP AUTH를 지원하지 않습니다.

당신과 (이 램슨에서 들어오는 SMTP 서버를 구현하고 smptd.SMTPServer에서 상속되는 클래스) lamson.server.SMTPReceiver의 소스를 보면이 직접 확인할 수 있습니다 초기 전에 들어오는 SMTP 메시지를 처리하는 클래스가 smtpd.SMTPChannel (smtpd.SMTPServer.process_message()으로 전달).

그러나 모두 손실되지는 않지만 this project은 표준 라이브러리의 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 구현이나 다른 방법으로 제공되지 않는 한).

나는 꽤 많이 다루고 있다고 생각합니다. 행운을 빌어 요.