【问题标题】:Can Lamson run under TLS/SSL and authenticate users?Lamson 可以在 TLS/SSL 下运行并对用户进行身份验证吗?
【发布时间】:2012-11-21 20:49:20
【问题描述】:

我找不到任何关于用户在向 Lamson 发送邮件之前进行身份验证的信息。我发现唯一提到的 SSL/TLS 是在 Relay 类中,据我所知,它在 Lamson 处理完消息后运行。我希望 Lamson 在进行任何处理之前检查 LDAP 凭据,但我不希望通过网络发送的密码未加密。如果有某种身份验证处理程序,我可以处理 LDAP 部分,但我也没有找到。

我还没有写任何代码,现在只是通过阅读文档来探索选项。

【问题讨论】:

    标签: python smtp-auth lamson


    【解决方案1】:

    答案是 Lamson 不支持 SMTP AUTH(需要用户在服务器接受电子邮件之前进行身份验证的 SMTP 扩展),因为它建立在 Python 标准库 smtpd 模块之上,该模块本身不支持 SMTP AUTH。

    您可以通过查看lamson.server.SMTPReceiver(这是在 Lamson 中实现传入 SMTP 服务器并继承自 smptd.SMTPServer 的类)和 smtpd.SMTPChannel(最初处理的类传入的 SMTP 消息,然后将其传递给 smtpd.SMTPServer.process_message())。

    但是,一切都没有丢失,this project 是标准库 smptd 的衍生产品,旨在提供对 SMTP AUTH 和 SSL 的支持(同时满足您的要求)。

    因此,您可以编写一个从上述项目的SMTPServer 派生的新类,并模拟Lamson 的STMPReceiver 的行为。然后,在 Lamson 的 config/boot.py 中,您需要更改行:

    from lamson.server import Relay, SMTPReceiver
    

    收件人:

    from lamson.server import Relay
    from my_module import my_class as SMTPReceiver
    

    根据需要替换 my_modulemy_class 以加载新编写的类。

    这将确保在 Lamson 收到电子邮件时执行用户身份验证进行任何进一步处理之前。当然,您必须确保仅通过 SSL 启用连接,并按照您所说的那样实现 LDAP 部分(除非某些 SASL 实现或其他实现提供)。

    我认为这几乎涵盖了它。祝你好运:)

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 2021-10-26
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多